insert into,... macht er nicht

neftarius

Mitglied
Also ich bin gerade dabei mir PHP anzueignen und habe zum Anfang ein kleines Gästebuch geschrieben. Doch bei dem letzten Teil möchte das ganze irgendwie nicht mehr funktionieren. Zur Datenbank wurde eine Verbindung aufgebaut und die Daten aus dem Formular erhalte ich mit Hilfe von
PHP:
$_POST[name des feldes]
also bräuchte ich ja eigentlich nur noch die Daten in die mysql datenbank schreiben, aber da streikt er dann. Um sie in die db einzufügen muss ich ja eigentlich nur folgenden Code verwenden , aber wie gesagt funktioniert das nicht.
PHP:
$sql = "INSERT INTO posts  VALUES ( '', '$_POST[n_name]', '$time', '$date', '$_POST[text]' )";
 
Ich würde sagen das liegt an den Singlequotes, da du diese nur bei CHAR, VARCHAR, TEXT, etc. brauchst, nicht aber bei Zahlenwerten.
Desweiteren würde ich dir folgenden Artikel ans Herz legen: Klick mich :)

Gruß
Marvin
 
Wäre schön wenn es einfach nur an den Single quotes liegen würde, ist aber nicht dem ;)
Und die Seite die du gepostet hast hilft mir auch nicht weiter, mag zwar richtig sein, ist aber nicht allzu relevant bei diesem Thema.
Trotzdem danke :)
 
p_id, int(11), not null, auto_increment, primary key
name, varchar(10), not null
zeit, varchar(10), not null
date, varchar(10), not null
text, longtext, not null
ich kenne mich auch nicht wirklich mit den besonderheiten aus aber ich dachte mir das das so halbwegs richtig ist :)
...naja für die Zeit würde es ja timestamp oder einfach nur time geben und für das Datum gibts ja auch date ...könnte es daran liegen ?
 
Und so?
PHP:
$sql = "INSERT INTO posts  VALUES ( '', '".$_POST['n_name']."', '".$time."', '".$date."', '".$_POST['text']."' )";

Ich kennen Deinen Tabellenaufbau auch nicht. Eventuell musst Du noch alle Spaltennamen aufführen, in denen was eingetragen werden soll.


PHP:
$sql = "INSERT INTO posts(spalte1, spalte2, spalte3, spalte4, spalte5)  VALUES ( '', '".$_POST['n_name']."', '".$time."', '".$date."', '".$_POST['text']."' )";
 
Ok, hab Deinen Tabellenaufbau zu spät gesehen. Dann also so:

PHP:
INSERT INTO posts(name, zeit, date, text)  VALUES ( '".$_POST['n_name']."', '".$time."', '".$date."', '".$_POST['text']."' )";

Beachte bitte, dass Du eine Auto-Inkrement Id hast. Der Wert für die Id wird also von selbst gefüllt!
 
Ja also es funktioniert alles nicht
ich hab einfach mal anstatt der Variabeln feste werte in das test script eingegeben. Das Ganze sieht also so aus:
PHP:
<?php
$username="root";
$passw   ="";
$hostname="localhost";
$dbname  ="test";


$db=mysql_connect("$hostname","$username","$passw");

$succ=mysql_select_db("$dbname") or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden.");

//$sql = "INSERT INTO posts(name, zeit, datum, beitrag)  VALUES ( '".$_POST['n_name']."', '".$time."', '".$date."', 

//'".$_POST['text']."' )";


$sql = "INSERT INTO posts(name, zeit, datum, beitrag)  VALUES ( 'name', '22:22:22', '2004-14-07', 'huhu' )";
?>
ja naja bloß des geht auch nicht
falls ihr daran zweifelt das überhaupt ne Verbindung zur db besteht im gleichen originalen Script werden die Daten weiter unten ausgelesen und das funktioniert :/
 
Mal nach dem Ausführen des Query mysql_error() eingeben?
ALso so:
PHP:
$sql = "INSERT INTO posts(name, zeit, datum, beitrag)  VALUES ( 'name', '22:22:22', '2004-14-07', 'huhu' )"; 
mysql_query($sql) OR die(mysql_error());

Wenn eine Fehlermeldung aufftritt sag uns bitte beschied.

Edit :Bist du dir auch sicher das in deinem Script mysql_query steht ,das DIESEN Query ausführt?
 
ja ich bin mir sicher ...
es liegt an dem id Feld ...irgendwie mag er das nich ich habs rausgenommen denn macht er es
aber warum mag er das mit dem Primary Key und auto_increment nicht machen ?
das würde er doch eigentlich von alleine eintragen oder nicht ?
 

Neue Beiträge

Zurück