PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL: Verzeichnisname maskieren?


mf_2
2007-11-21, 10:01:02
Hallo,

Ich habe eine MySQL-Tabelle:


id verz
----------
0001 C:/test\test2\lol.txt
0002 C:/test\test2\lol.txt
0003 C:/test\test2\lol.txt
0004 C:/test\test2\lol2.txt


Folgender SELECT Query liefert keine Übereinstimmung:
$sql = "SELECT * FROM testtabelle WHERE verz='C:/test\test2\lol.txt'";
Der sollte aber drei Übereinstimmungen liefern
Muss man bei sowas die Schrägstriche irgendwie maskieren?
Folgendes liefert auch keine Übereinstimmung:
$sql = "SELECT * FROM testtabelle WHERE verz='".addslashes("C:/test\test2\lol.txt")."'";

Was mache ich falsch?

daflow
2007-11-21, 10:31:01
Hallo,

Ich habe eine MySQL-Tabelle:


id verz
----------
0001 C:/test\test2\lol.txt
0002 C:/test\test2\lol.txt
0003 C:/test\test2\lol.txt
0004 C:/test\test2\lol2.txt


Folgender SELECT Query liefert keine Übereinstimmung:
$sql = "SELECT * FROM testtabelle WHERE verz='C:/test\test2\lol.txt'";
Der sollte aber drei Übereinstimmungen liefern
Muss man bei sowas die Schrägstriche irgendwie maskieren?
Folgendes liefert auch keine Übereinstimmung:
$sql = "SELECT * FROM testtabelle WHERE verz='".addslashes("C:/test\test2\lol.txt")."'";

Was mache ich falsch?

Von wo setzt du die Query den ab? Per PhP aufgerufen?
Query "SELECT * FROM testtabelle WHERE verz='C:/test\test2\lol.txt' sollte eigentlich funktionieren, wenn string 'C:/test\test2\lol.txt' genau so existiert in Spalte 'verz'.
Heisst aber nicht evtl. 'C:\test\test2\lol.txt' ? evtl. links oder rechts Leerzeichen? Funktioniert "...where verz like '%lol.txt%'"?

mf_2
2007-11-21, 11:09:02
Das mit LIKE funktioniert nicht.

daflow
2007-11-21, 11:24:57
Kommt eine fehlermeldung(etl. ist die mysql Syntax hier leicht abweichend?) oder wird einfach keine Zeile selektiert die diesem Kriterium entspricht? 2.eres wäre dubios... alternativversuch wäre "like '%lol%'" (evtl. mag mysql ja das 2.% nicht, wenn hinter lol.txt wirklich der String zu Ende ist.)