Jo: MySql-Anfrage ergibt als Ergebnis bool false. Wo ist der Fehler?

Beitrag lesen

Moin!

Ist in den folgenden Zeilen ein Fehler? Oder wenn nicht, woran könnte es liegen?

mysql_error() sagt dir, was die Datenbank an deinem Query nicht toll findet. Das solltest du immer aufrufen als minimale Fehlerbehandlung, wenn mysql_query false zurückgibt.

Aber ich rate mal: Die Datenbank bemängelt, dass die Inhalte der ganzen $mp...-Variablen nicht in Anführungszeichen stehen, und ich bemängele, dass diese Variablen keinerlei Escaping unterzogen werden.

mysql_real_escape_string() gehört auf jeden Inhalt angewendet, den du in den Query-String reinschreiben willst! Ansonsten machst du dich anfällig für SQL-Injection.

  • Sven Rautenberg

mysql_error ergab tatsächlich den Fehler bei der ersten $mP_... Variablen
var_dump ergabe: string(42) "Unknown column 'testtitel' in 'field list'"
Wenn ich die $mP_...Vars durch Strings ersetze, also z.B. gleich $mP_titel durch 'testtitel' klappt alles.
Welche Anführungszeichen muss ich denn jetzt hier verwenden?
Die Vorlage für das INSERT habe ich aus phpMyAdmin, und dann angepaßt, nur bei den Anführungszeichen ist es mir jetzt nicht klar, welche ich da noch verwenden soll?

Als Escape verwende ich:
   $mP_titel = htmlentities(nl2br($GLOBALS["mP_titel"]),ENT_QUOTES);
   usw....
Geht das auch? Oder erfaßt das nicht alle gefährlichen Zeichen?

Danke für alle Antworten schon mal!

Grüße
Jo