Einfache Datenbankabfrage MSYQL bringt kein Ergebnis
Norbert
- php
0 romy0
Der Martin
Hallo,
Ich sende folgende Abfrage an mysql.
Ich habe ein Tabelle min dem Namen registry.
In dem Feld MAINKEY sind unter Anderem 5 Einträge mit dem Inhalt: MAIN\ADDR_HIS.
Sende ich in meinem PHP Script die Abfrage:
$SQL = "SELECT * FROM registry WHERE MAINKEY = 'MAIN\ADDR_HIS'";
$res = mysql_query($SQL,$ConnectHnd);
0 Ergebnis.
Sende ich die Abfrage über phpmyadmin kommen die 5 Einträge.
Was ist falsch an meiner Abfrage?
Gruß
Hallo Norbert,
Ich sende folgende Abfrage an mysql.
Ich habe ein Tabelle min dem Namen registry.
In dem Feld MAINKEY sind unter Anderem 5 Einträge mit dem Inhalt: MAIN\ADDR_HIS.
Sende ich in meinem PHP Script die Abfrage:
$SQL = "SELECT * FROM registry WHERE MAINKEY = 'MAIN\ADDR_HIS'";
$res = mysql_query($SQL,$ConnectHnd);
0 Ergebnis.
Wie wertest du das aus? Aus dem oben stehenden Code geht das leider nicht hervor.
ciao
romy
Hi,
In dem Feld MAINKEY sind unter Anderem 5 Einträge mit dem Inhalt: MAIN\ADDR_HIS.
also mit einem echten Backslash?
$SQL = "SELECT * FROM registry WHERE MAINKEY = 'MAIN\ADDR_HIS'";
Dieser String enthält, nachdem er von PHP geparst ist, einen einzelnen Backslash.
Was ist falsch an meiner Abfrage?
Auch in mySQL ist der Backslash ein Sonderzeichen. Wenn mySQL nur einen einzelnen Backslash bekommt, versucht die DB, die entsprechende Escape-Sequenz aufzudröseln. Da \A keine gültige Escape-Sequenz ist, wird der Backslash ignoriert. Was übrig bleibt, passt nicht mehr zu deinem gesuchten Ausdruck.
Ergo: Sorge dafür, dass mySQL _zwei_ Backslashes bekommt.
Ciao,
Martin
Ich hab mir schon gedacht, dass es am Backslash liegt. Deshalb ja die 2 in meinem SQL Statement.
Ergo: Sorge dafür, dass mySQL _zwei_ Backslashes bekommt.
Also 3 Backslashes! Klapt :)
Danke
Hi,
Also 3 Backslashes! Klapt :)
wundert mich?!
bei \\A müsste doch php den 3. backslash auf A beziehen?
dann wäre doch iregendwas\\iregendwas -> string für MYSQL = iregendwas\iregendwas
oder?
ralphi
Tach!
Also 3 Backslashes! Klapt :)
wundert mich?!
bei \\A müsste doch php den 3. backslash auf A beziehen?
PHP ist nicht MySQL. Nicht alle Kombinationen aus Backslash und Buchstaben sind Escape-Sequenzen. Ansonsten werden die Zeichen als einzelne betrachtet.
dann wäre doch iregendwas\\iregendwas -> string für MYSQL = iregendwas\iregendwas
Auch das. \\i ebenso, nicht jedoch \\e (aber erst seit PHP 5.4.0)
dedlfix.