vielen Dank. Ich bin schon draufgekommen, ich weiß schon, wo das Problem ist ! In Zeilenumbrüchen !
Mist, doch kein Preis ;)
Der Zeilenumbruch ist nach dem 3. KOmma, also:
status_zeigen('1064: You have an error in your SQL syntax near x,y,z,
');
Wie kommt da noch ein Komma hin? In Deinem ersten Beispiel waren's nur drei Parameter, x, y und z. Lautet Deine Parameterliste jetzt x,y,z,n?
Aber egal, was ich nicht kapiere ist, wo der Zeilenumbruch herkommt. Du filterst sie doch schon mit
$temp = str_replace("\n", "", $temp);
raus, insofern kann da kein Zeilenumbruch drin sein.
Nimm doch nochmal die ganzen str_replace() raus und ersetze
echo "status_zeigen('$v');\n";
durch
echo "status_zeigen("".addslashes($v)."");\n";
oder eine Variante mit addcslashes(). Damit solltest Du schonmal die Probleme mit den Rückstrichen beseitigt haben. Das Rausfiltern sollte jedenfalls unnötig sein.
Funktioniert es dann noch nicht, versuche, vereinzelte \n-Guerillias mit str_replace() zu eliminieren.
Lass Dir in Deiner Status-Klasse am Anfang und am Ende von set_st() eventuell den Inhalt von $a_st per var_dump() in einem <pre>-Block (Wichtig, sonst gehen Zeilenumbrüche bei der Anzeige im Browser verloren!) ausgeben, um zurückzuverfolgen, wo die Zeilenumbrüche herkommen.
Gruß,
soenk.e