Probleem met quotes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Fromzon ngl

Fromzon ngl

26/05/2011 17:55:46
Quote Anchor link
Mijn Insert query loopt vast op volgende string:

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?
 
PHP hulp

PHP hulp

27/11/2024 12:11:51
 
Noppes Homeland

Noppes Homeland

26/05/2011 19:01:30
Quote Anchor link
om te beginnen is het al fout om mysql_real_escape_string terug te geven aan een php-variabele!!

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
 
Fromzon ngl

Fromzon ngl

26/05/2011 21:38:45
Quote Anchor link
Het voorbeeld maakt eigenlijk niet uit.

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
 
- Ariën  -
Beheerder

- Ariën -

26/05/2011 21:41:50
Quote Anchor link
Dat is wel voldoende. Ik denk eerder dat je het verkeerd toepast.
 
Victor -

Victor -

26/05/2011 21:43:57
Quote Anchor link
je moet mysql_real_escape_string in de query zelf toepassen, en niet in daarbuiten.
 
Fromzon ngl

Fromzon ngl

26/05/2011 21:48:47
Quote Anchor link
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
 
Vincent Huisman

Vincent Huisman

26/05/2011 21:52:09
Quote Anchor link
omdat het stomzinnig is om onnodig vars te kopieren
 
Fromzon ngl

Fromzon ngl

26/05/2011 21:53:30
Quote Anchor link
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.
 
PHP Scripter

PHP Scripter

26/05/2011 21:54:12
Quote Anchor link
Deleted.
Gewijzigd op 26/05/2011 21:54:26 door PHP Scripter
 
- Ariën  -
Beheerder

- Ariën -

26/05/2011 21:59:47
Quote Anchor link
Hoe pas je die code dan toe?
 
Fromzon ngl

Fromzon ngl

26/05/2011 22:26:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
 
- Ariën  -
Beheerder

- Ariën -

26/05/2011 22:45:55
Quote Anchor link
Je doet niks met het gegeven advies he?
Gewijzigd op 26/05/2011 22:49:12 door - Ariën -
 
Fromzon ngl

Fromzon ngl

26/05/2011 22:50:48
Quote Anchor link
- 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
 
- Ariën  -
Beheerder

- Ariën -

26/05/2011 23:11:50
Quote Anchor link
Lees eens terug in dit topic.

Hoe ziet die clean() functie eruit?
Gewijzigd op 26/05/2011 23:12:05 door - Ariën -
 
Fromzon ngl

Fromzon ngl

26/05/2011 23:15:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function clean($arg){
   return mysql_real_escape_string($arg);
}
 
- Ariën  -
Beheerder

- Ariën -

27/05/2011 00:27:55
Quote Anchor link
Twee dingen ontgaan me:

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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
for ($i = 1; $i < 2; $i++) {
 echo "Hallo";
}
 
Fromzon ngl

Fromzon ngl

27/05/2011 00:53:11
Quote Anchor link
Aar,
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
 
- Ariën  -
Beheerder

- Ariën -

27/05/2011 00:54:38
Quote Anchor link
Ik kraam geen onzin uit. Wil je een efficiënt script hebben, dan is dit kleine moeite.

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 -
 
Fromzon ngl

Fromzon ngl

27/05/2011 00:56:16
Quote Anchor link
- 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
 
- Ariën  -
Beheerder

- Ariën -

27/05/2011 00:57:59
Quote Anchor link
Wil je efficiënt script, of niet?
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 -
 
Fromzon ngl

Fromzon ngl

27/05/2011 01:08:27
Quote Anchor link
Sorry hoor Aar als ik bot klink,
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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.