Syntaxproblem mit '

[code]$sql = “UPDATE posts SET message= '” . $new_message ."’, posttime=’" . $row[‘posttime’] . “’ WHERE postid=’” .

$row[‘merge_postid’] . “’”;[/code]

wenn das so stehenbleibt, und das feld message ein ’ enthält kommtn fehler weil es verständlicherweise von ausgeht dass da ende ist.

was kann man für message = … für zeichen setzen, damit nichts im message inhalt als php syntax angesehen werden kann?

glaub das stand auch schonmal irgendwo hier erklärt, finde den thread aber nicht mehr -,-

Du musst die ’ und alle anderen Zeichen, die php fehlinterpretieren könnte, escapen. Das geht einfach mit einem Backslash. Statt ’ schreibst du dann einfach ’

thx , das mit dem backslash wusstich schon, wusste nur nicht wie man es auf veränderlichen text anwendet… addslashes() war das was ich gesucht hab, trotzdem danke :slight_smile:

Dafür gibt es ja eigentlich die RDBMS-spezifischen Escape-Funktionen. Btw, man sollte NIE Sachen an die Datenbank senden, ohne diese zu escapen, ganz gleich woher sie kommen oder ob sie bereits geprüft wurde.

Für MySQL heißt die Funktion übrigens mysql_real_escape_string().

außerdem würde ich das anders anschreiben…

$new_message = mysql_escape_string($new_message);

einfach weil es anders nicht lesbar ist…

@michi7x7: Und wenn PHP sehr restriktiv eingestellt ist, dann hast du spätestens dort: $row[posttime] den Schlauch, da es sich dann nicht um einen Feldnamen sondern um eine Konstante handelt die nicht gesetzt ist.

Wenn schon sollte man wenigstens sauber und syntaktisch richtig programmieren.

der Fehler ist zumindest behoben ^^

war bestandteil von nem hack für wbblite, wahrscheinlich hatte der ersteller nicht viel mehr ahnung von als ich weil da schon so einiges nachgebessert werden musste.

bei dem board steig ich sowieso noch nicht durch den code völlig durch.

trotzdem thx werds mal ändern und mich maln bisschen mehr mit auseinandersetzen :slight_smile: