Probleem met quotes
2″
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.
Hoe los je zoiets op?
de mysql_real_escape_string gebruik je alleen binnen de sql-statements!
En als je tegen dit soort problemen aanloopt dan:
1. post de query welke uitgevoerd wordt
2. post de foutmelding die erbij hoort
Want je zit nu ergens naar te kijken wat niet tot het probleem behoort!
Gewijzigd op 26/05/2011 19:03:14 door Noppes Homeland
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
Gewijzigd op 26/05/2011 21:52:59 door Fromzon ngl
Dat is wel voldoende. Ik denk eerder dat je het verkeerd toepast.
je moet mysql_real_escape_string in de query zelf toepassen, en niet in daarbuiten.
Victor - op 26/05/2011 21:43:57:
je moet mysql_real_escape_string in de query zelf toepassen, en niet in daarbuiten.
Dit maakt toch niet uit?
Of ik nu rechtstreeks
mysql_real_escape_string($var) gebruik, of
$var = mysql_real_escape_string($var)
Hierbij is het resultaat toch hetzelfde?
Gewijzigd op 26/05/2011 21:50:45 door Fromzon ngl
omdat het stomzinnig is om onnodig vars te kopieren
Vincent Huisman op 26/05/2011 21:52:09:
omdat het stomzinnig is om onnodig vars te kopieren
Maar het probleem van dit topic heeft er dus weinig mee te maken.
Gewijzigd op 26/05/2011 21:54:26 door PHP Scripter
Hoe pas je die code dan toe?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$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
Gewijzigd op 26/05/2011 22:45:28 door Fromzon ngl
Gewijzigd op 26/05/2011 22:49:12 door - Ariën -
- Aar - op 26/05/2011 22:45:55:
Je doet niks met het gegeven advies he?
Wat bedoel je?
Gewijzigd op 26/05/2011 22:58:01 door Fromzon ngl
Waarom een functie maken om een andere functie mee in te laden? Is onzinnig
Waarom overschrijf je variabelen? Is onzinnig
Als je een echo plaats, doe je dan ook maar meteen dit?
jij kan een hele hoop onzin uitkramen, dat weet ik nog van vorige keer:
http://www.phphulp.nl/php/forum/topic/geavanceerd-javascriptfunctie-direct-laten-uitvoeren-2-syntaxen/75486/
Voor de geinteresseerden, ik heb het probleem gevonden, het was namelijk te wijten aan een character set conversie van "UTF-8" naar "cp1252"
Toen ik deze conversie heb opgeheven, was het probleem opgelost.
@ Aar,
stop met zeuren over pietlulligheden in elke topic, je helpt niemand vooruit, integendeel.
Topic solved.
Gewijzigd op 27/05/2011 00:54:55 door Fromzon ngl
Als je op zo'n toon in dit topic naar mij doet blaten, dan vraag ik me nog hard af of ik nog advies moet geven, gezien je er toch niks mee doet.
Mijn advies, en volg die liever op: Leer ervan, en doe er wat mee.
Verder: Fijn dat het opgelost is. Toevallig liep ik er ook tegenaan met PMA vandaag.
Gewijzigd op 27/05/2011 00:56:36 door - Ariën -
- Aar - op 27/05/2011 00:54:38:
Als je op zo'n toon in dit topic naar mij doet blaten, dan vraag ik me nog hard af of ik nog advies moet geven, gezien je er toch niks mee doet.
Jouw advies lost niets op, daarom doe ik er ook niets mee. Ga je mij dat nu kwalijk nemen?
Jij moet telkens in elk topic over zaken beginnen zeuren waar de vraag van de Opening Poster totaal niet over gaat, en zo maak je de topics alleen maar onduidelijk zonder echt te helpen.
Gewijzigd op 27/05/2011 00:57:39 door Fromzon ngl
Als je straks een topic gaat starten dat je script teveel geheugen verbruikt, dan weet je wat ik in ieder geval gezegd heb.
het is notabene geen afkrakende kritiek, maar opbouwende kritiek.
Quote:
Jij moet telkens in elk topic over zaken beginnen zeuren waar de vraag van de Opening Poster totaal niet over gaat, en zo maak je de topics alleen maar onduidelijk zonder echt te helpen.
It's a bull...
Zie Vincents reactie in je topic waar je naar verwees.
Gewijzigd op 27/05/2011 01:02:40 door - Ariën -
maar als ik uren op zo'n probleem zit te zoeken,
en dan terwijl krijg ik constant off-topic commentaar over hoe ik omga met variabelen en functies zonder ook maar enige tekst tegen te komen die ook maar in de buurt zit van een eventuele oplossing voor mijn probleem, dan is dat een beetje frustrerend.
Gewijzigd op 27/05/2011 01:09:49 door Fromzon ngl