2009-03-22 6 views
0
$author = $_SESSION['username']; 
$subject = $_POST['subject']; 
$body = $_POST['body']; 
$branched = $_POST['branched']; 
$time = time(); 
$branchedFrom = $_POST['parent']; 
$id = $_POST['parent']; 
$next = 0; 
$previous = 0; 
$branchedTo = 0; 
mysql_query("INSERT INTO offtopic VALUES('', '$author', '$subject', '$body', '$time', '$next', '$previous', '$branchedFrom', '$branchedTo'"); 

Ich habe es viele Male versucht, sogar versucht, einige Sachen zu ändern, aber es speichert nicht die Informationen in die Datenbank. Das Leerzeichen am Anfang ist, wo der Index in der Datenbank ist. Die SESSION und POST-Sachen, die ich ziemlich sicher bin, wird richtig übergeben.Warum funktioniert meine MySQL-Datenbankeinfügung nicht?

Antwort

4
"INSERT INTO offtopic VALUES('', '$author', '$subject', '$body', '$time', '$next', '$previous', '$branchedFrom', '$branchedTo'" 

Fehlende Schließung ')' innerhalb der Zeichenfolge. Nehmen Sie die Fehlermeldung mit mysql_error() auf und einfache Syntaxfehler wie diese sollten offensichtlich sein.

Auch Sie haben SQL injection Sicherheitslücken, durch die Sie einen Bus fahren könnten. Sie müssen mysql_real_escape_string() über jeden Zeichenfolgenwert aufrufen, den Sie in die Zeichenfolge verketten, oder mysqli verwenden.

+0

ich auf mysqli aufgegeben einfügen Felder haben. Es ist schrecklich buggy. – cletus

1

Vielleicht liegt es daran, dass Ihre Abfrage fehlt die

"INSERT INTO offtopic(field1, field2, etc....) VALUES('', '$author', '$subject', '$body', '$time', '$next', '$previous', '$branchedFrom', '$branchedTo'"); 
Verwandte Themen