Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

ERROR: Unbekannte Interpunktion @ 21366

Ich schreibe derzeit gerade ein etwas größeres PHP-Script. Bisher hat auch alles einwandfrei funktioniert. Heute habe ich einmal den E-Mailer fertig gestellt, ein PHP-Script um schnell HTML oder Text E-Mails (Newsletter) an x beliebige Personen zu versenden. Zusätzlich kann man noch die E-Mail an Gruppen aus dem Forum senden und noch viel mehr.....

Das Versenden der E-Mail funktioniert eigentlich recht gut. Ich will nun aber die E-Mail, samt allen Headerdaten in meiner Datenbank speichern, als Archiveintrag. Leider bekomme ich immer folgende Fehlermeldung:

Zitat:
SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'to='blblabla@ich.com', message='<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 ' at line 1
phpMyAdmin meldet dann noch folgenden Fehler:
Zitat:
ERROR: Unbekannte Interpunktion @ 21366
STR: >\
SQL: ..................
Ich speichere in einer Spalte natürlich den ganzen HTML-Teil, der versendet wird. Natürlich maskiere ich vorher die Zeichen mit mysql_escape_string.

Hat jemand eine Idee wie ich diesen Fehler weg bekomme und meine Daten in der DB speichern kann? :-(

Ich kann euch jetzt nicht den ganzen PHP-Code posten, ist einfach zu lange. Aber ich kann euch mehr vom SQL-String geben, so wie es an die Datenbank gesendet wird oder natürlich einen Auszug des Codes.

Vielen Dank schon im Vorraus für eure Hilfe.


MfG Christian
Hier gehts zum Orginal Eintrag "ERROR: Unbekannte Interpunktion @ 21366" im Forum

Antworten

Zeig mal wenigstens dein SQL-Statement... Du trägst wahrscheinlich deine Daten so in die Tabelle ein:
Code:                   In Zwischenablage kopieren (nur IE)
1">

Texte müssen aber von ' eineschlossen sein, also:
Code:                   In Zwischenablage kopieren (nur IE)
2">

Noch besser:
Code:                   In Zwischenablage kopieren (nur IE)
3">

Die ' entfallen nur bei INT-Feldern...

Und beachte noch zu mysql_escape_string:
Anmerkung: Diese Funktion ist seit PHP 4.3.0 veraltet. Benutzen Sie diese Funktion nicht und verwenden Sie stattdessen mysql_real_escape_string().


2.

Danke einmal für die schnell Antwort. Die PHP-Funktion habe ich gleich durch die neuere ausgetauscht, musste ich zum Glück nur einmal in meiner DB-Klasse.

Ich habe mir den SQL-String jetzt mal ausgeben lassen:
Hier kannst du ihn komplett runter laden: http://www.happytec.at/sql_test.txt


MfG Christian


3.

Tja, bei mir funktioniert das Statement. Meine Testtabelle sieht so aus:
Code:                   In Zwischenablage kopieren (nur IE)
4">




4.

Also das ist jetzt aber seltsam. Einserseits bin ich natürlich froh, da so der Fehler nur in der Tabelle liegen kann.
Ich habe folgenden SQL-String um die Tabelle zu erstellen:
Code:                   In Zwischenablage kopieren (nur IE)
5">

Ich habe jetzt die Tabelle einmal gelöscht und neu angelegt. Mit dem gleichen SQL-String wie gestern. Und jetzt funktioniert es. Mehr als mysteriös. Aber hauptsache es funktioniert jetzt :)

Vielen Dank für deine rasche Hilfe.


MfG Christian


Hier gehts zum Orginal Eintrag "ERROR: Unbekannte Interpunktion @ 21366" im Forum
 
phpforum.de | Impressum