Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

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

Diskussion: SQL-Abfrage mit Komma, die in PHPMyAdmin, aber nich in PHP geht im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Mal wieder so eine Syntax-Frage, deren Antwort sich schlecht ergooglen lässt: PHP-Code: $db  = ... $sql  =  "SELECT * from tabelle where spalte like 'Satz, der ein Komma hat' " $abfrage  =  mysqli_query ...

Antwort
Alt 10.02.10, 14:06   #1 (permalink)
 
Registriert seit: 23.01.10
GWBasic gab's auch ma Leistung: Facit NTK
Likes: 0
Standard 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-Code:
$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
GWBasic gab's auch ma ist offline   Mit Zitat antworten
Alt 10.02.10, 14:14   #2 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

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?
xeno ist gerade online   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 10.02.10, 14:26   #3 (permalink)
Themenstarter
 
Registriert seit: 23.01.10
GWBasic gab's auch ma Leistung: Facit NTK
Likes: 0
Standard

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.
GWBasic gab's auch ma ist offline   Mit Zitat antworten
Alt 10.02.10, 14:42   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteronbitmuncher Leistung: Opteron
Likes: 371
Standard

Lass dir doch einfach mal mysql_error() ausgeben.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist gerade online   Mit Zitat antworten
Alt 10.02.10, 14:48   #5 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 75
Standard

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...
beavisbee ist offline   Mit Zitat antworten
Alt 10.02.10, 14:49   #6 (permalink)
Themenstarter
 
Registriert seit: 23.01.10
GWBasic gab's auch ma Leistung: Facit NTK
Likes: 0
Standard

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...
GWBasic gab's auch ma ist offline   Mit Zitat antworten
Alt 12.02.10, 09:08   #7 (permalink)
 
Benutzerbild von b4ck
 
Registriert seit: 13.02.06
b4ck Leistung: Z3
Likes: 1
Standard

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.
b4ck ist offline   Mit Zitat antworten
Alt 12.02.10, 09:42   #8 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Zitat:
Zitat von GWBasic gab's auch ma Beitrag anzeigen
"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.

Geändert von odigo (12.02.10 um 15:55 Uhr)
odigo ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » SQL SQL-Abfrage mit Komma, die in PHPMyAdmin, aber nich in PHP geht
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61