Nochtans gebruik ik het volgende:
$string = mysql_real_escape_string($string);
Maar blijkbaar is dit niet genoeg want zodra er schuine quotes in de string staan, loopt heel de SQL query vast en krijg ik errors dat de query niet goed gevormd zou zijn.
Er zou toch een soort van universele oplossing moeten zijn om strings met eender welke inhoud veilig op te kunnen slaan via een insert query.
Ik heb altijd gedacht dat het genoeg was om de functie mysql_real_escape_string() te gebruiken, maar blijkbaar is dit niet voldoende. Welke andere functie(s) zijn er nog nodig ?
EDIT:
Hier is een voorbeeldje van een query:
INSERT INTO
wordlogger (search, word, count)
VALUES ('car+name','*Saveââ??·ââ??·',1) ON DUPLICATE KEY UPDATE count = count + 1 ;
==> Dit geeft dus een MySQL syntax error voor het gedeelte waar *Saveââ??·ââ??· werd ingevuld
$searchTerm = clean($searchTerm);
$word = clean($word);
$query = " INSERT INTO ".WORDLOGGER." (search, word, count)
VALUES ('".$searchTerm."','".$word."',1)
ON DUPLICATE KEY UPDATE count = count + 1
;";
$this->objMySqlConnection->insert($query);
De clean-functie bevat de mysql_real_escape_string()
Deze query werkt meestal feilloos, behalve dus bij bovengenoemde voorbeelden, dan loopt hij vast.
De error is: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''*Saveââ' at line 2
Maar dus even herhalen: deze query loopt in een loopje en word constant succesvol uitgevoerd, tot hij dit soort van string tegenkomt