mysqli: Query darf keine Zeilenumbrüche enthalten??

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Gast210225

mysqli: Query darf keine Zeilenumbrüche enthalten??

Beitrag von Gast210225 »

Hallo,

Hier erstmal der Code:

Code: Alles auswählen

$sql = 'SELECT *
	FROM table';

$result = $db->query($sql);
$db->free_result($result);
Wenn ich das ausführe bekomme ich folgende meldung:

Code: Alles auswählen

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 '\n FROM table' at line 1 [ 1064 ]
Wenn ich jedoch

Code: Alles auswählen

$sql = 'SELECT * FROM table';
schreibe geht es...

Hat da jemand einen Tipp für mich?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

vielleicht liegt es an Deinem Editor....

... benutze mal testweise den Notepad++
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Hauptsache du hast nicht das hier ausgeführt:

Code: Alles auswählen

$sql = 'SELECT * \n FROM table';

$result = $db->query($sql);
$db->free_result($result);
das \n wird nämlich nur umgewandelt in einen Zeilenumbruch, wenn es in doppelten Anführungszeichen steht.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Gast210225

Beitrag von Gast210225 »

Hallo,

ich hab es mit kate und gedit versucht.... Beides geht nicht (Linux)
Hat sonst noch jemand eine Idee woran das liegen könnte?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Hm. Fällt mir jetzt so nicht ein. Allerdings könntest du im Notfall vor dem Ausführen des Querys alle Zeilenumbrüche entfernen:

Code: Alles auswählen

str_replace("\n",'',$query);
Wenn du das in die Wrapper-Klasse mit einbaust dann dürfte es noch nicht einmal groß stören, seltsam ist das Verhalten aber schon, denn eigentlich sollten Zeilenumbrüche nicht stören.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Gast210225

Beitrag von Gast210225 »

Hallo,
ich hab nun den fehler:

Code: Alles auswählen

$sql = mysqli_real_escape_string($this->link, $sql);
anschreinend kann ich die funktion nicht für das ganze query benutzen, sondern immer nur für einzelne strings...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Die Funktion ist auch nicht dafür gedacht das komplette Query zu bearbeiten sondern nur dazu da, in Felder einzutragende Strings so vorzubereiten, dass diese das Query nicht beeinflussen, also z.b. alle ' maskiert werden. Wenn du das auf den ganzen Query anwendest funktioniert der natürlich meist nicht mehr.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“