SQL SQL-Abfrage mit Komma, die in PHPMyAdmin, aber nich in PHP geht

Mal wieder so eine Syntax-Frage, deren Antwort sich schlecht ergooglen lässt:
PHP:
$db = ...
$sql = "SELECT * from tabelle where spalte like 'Satz, der ein Komma hat' "
$abfrage = mysqli_query($db, $sql);
while ($zeilen = mysqli_fetch_array($abfrage))
{echo "<br>Schon wieder ein lustiges Element in der Abfrage...";}
Die Abfrage per copipaste in PHPMyAdmin ausprobiert, funzt einwandfrei. Bekomme allerlei Rückgabewerte.
Die Abfrage innerhalb von php-Code ausgeführt, geht nicht.
Was aber wieder innerhalb von php geht, sind Abfragen, die kein "," (Komma) enthalten.
Kann mir einer der überaus hilfsbereiten Leser helfen? An den Anführungszeichen liegt es wohl nicht: habe schon allerlei ausprobiert.
So eine dusselige Kleinigkeit.
Dank und Gruß, GWBasic gab's auch ma
 
Das Komma vielleicht mit \ escapen? Ich hab mir da noch nie Gedanken drüber gemacht, wäre aber mein erster Versuch. Und zeigt phpMyAdmin nicht den ausgeführten Befehl nach dem Absenden noch an? Siehst du da eventuell eine Veränderung im Query?
 
Escapen bringt nix. Danke für die Antwort.

Ich kann noch einen draufsetzen: Die Abfrage geht nicht einmal, wenn ich den String mittels explode beim Komma aufteile und das SELECT aufteile in
"SELECT * from tabelle where spalte like 'Satz' AND spalte like 'der ein Komma hat' "
Spanend.
 
poste doch bitte mal
1.) den PHP-Code, möglichst auch ohne die SQL-Query abzuändern

2.) Details, was dir an Fehlern angezeigt wird.
(inclusive Ausgabe von mysql_error() )


SQL-Queries, die im PHPmyAdmin funktionieren, sollten normalerweise auch mit mysql_query() unter PHP laufen...
Wenn dem nicht so ist, vermute ich ehr einen Fehler im restlichen PHP-Script.
Möglicherweise lässt du die SQL-Anfrage ja dynamisch generieren und da entsteht schon irgendwo ein Fehler?!

Also bitte ein paar mehr Details zu Code und Fehler-Ausgabe, sonst kann man mit deinen paar Informationen, die du uns hier hinterlassen hast, recht wenig anfangen...
 
Kein Fehler. Abfrage ist einfach leer. Habe gerade gelesen, dass ich das Komma für die Anwendung von mysqli_query escapen soll mit mysqli_real_escape_string.

Hm. Mal probieren...
 
wenn du keinen error kriegst hat das nichts mit dem komma zu tun.
kommas müssen afaik nicht für sql abfragen mit \ escaped werden schongarnicht wenn sie innerhalb der abfrage zwischen ' stehen.

am besten postest du deinen code und die datenbank zeile auf die das ganze matchen soll.
 
"SELECT * from tabelle where spalte like 'Satz' AND spalte like 'der ein Komma hat' "
.

Meines Wissens nach kann das auch nicht gehen. Du benutzt in der Abfrage keine Wildcards.
Wenn dann müsstest du schreiben:
SELECT * from tabelle where spalte like 'Satz%' AND spalte like '%der ein Komma hat'
(wobei das doppelt gemoppelt wäre)
PS: Ich hab hier keine MySQL-Datenbank, aber Oracle ists definitiv so.

EDIT: Nicht falsch verstehen. Dein SQL ist syntaktisch gesehen korrekt, nur halt leider logisch sinnlos.
 
Zuletzt bearbeitet:
Zurück
Oben