MySQL query probleem

Status
Niet open voor verdere reacties.

SanderDK

Nieuwe gebruiker
Lid geworden
13 jul 2011
Berichten
3
De tabel "tabel" heeft een veld "titel".
in het veld "titel" staat voor dit voorbeeld 1 record: " {}:\"|? " .

de query die ik uitvoer is:
SELECT * FROM `tabel` WHERE titel='{}:\"|?'

Deze query geeft als resultaat 0 rijen terug.

Waarom vind hij geen records?
 
Krijg je niks terug of krijg je er een foutmelding op?
 
Ik krijg geen foutmelding, ik krijg alleen 0 rijen als resultaat.
 
Het kan zijn dat de \ in die string door de query processor als Escape wordt gezien en daarom niet als filter doorkomt.
 
blijkbaar werkt de query: SELECT * FROM `website_mainnav` WHERE item_title='{}:\\"|?' wel, als ik de backslash zelf escape.
Een gebruiker doet d.m.v een HTML form velden invullen, en als hij dus een backslash invoert werkt het script wel, maar ik krijg geen resultaten terug van de query.
Weet iemand hier een oplossing voor, of moet ik het script zo aanpassen dat backslash en quotes illegale characters zijn en dus niet gebruikt mogen worden?
Op dit forum kan je ook gewoon backslashes en quotes gebruiken, en deze berichten worden natuurlijk ook gewoon in een database geplaats, waarom werkt het hier dan wel?
 
Omdat hier de backslash automatisch ge-escapet wordt.

Als de gebruiker zoekt op ab\cd dan moet je het zo bouwen dat in de query string gezocht wordt op ab\\cd.

Daar zou je bijv mysql_real_escape_string() voor kunnen gebruiken.
 
Als ik je voorbeelden bekijk, zie ik dat er bij de inhoud van de tabel een spatie voor de string staat, en bij de sql query niet... Misschien de oorzaak? :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan