quote in query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jennifer Van W

Jennifer Van W

03/03/2015 13:51:51
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$sql="INSERT INTO products_de (product_id,product_name_de,product_description_de,description_de,information_de) VALUES
             ($id,'".$german['product_name_de']."','".$german['product_description_de']."','".$german['description_de']."','".$german['information_de']."')
              ON DUPLICATE KEY UPDATE
              product_name_de='".$german['product_name_de']."',product_description_de='".$german['product_description_de']."',
              description_de='".$german['description_de']."', information_de='".$german['information_de']."'";


Als nu $german['product_name_de'] == ' 's werelds ' Heb ik een probleem door de quote voor de s......

Hoe nu?
 
PHP hulp

PHP hulp

22/12/2024 23:43:22
 
Thomas van den Heuvel

Thomas van den Heuvel

03/03/2015 14:01:27
Quote Anchor link
(er vanuitgaande dat je MySQL gebruikt)
Gebruik een _real_escape_string() functie om de DATA-delen binnen je SQL te ontdoen van enige speciale betekenis binnen die SQL (zoals quotes).

Ingeval je mysql gebruikt is dit mysql_real_escape_string($data).
Ingeval je mysqli gebruikt is dit mysqli_real_escape_string($dbLink, $data) (procedureel) of $dbLink->real_escape_string($data) (object georiënteerd)

EDIT: voor het correct functioneren van (i.h.a.) escaping is het van cruciaal belang dat je werkt met de juiste (en bij voorkeur één) character encoding. Als je tabellen de UTF-8 encodering gebruiken is het zaak dat je bij het maken van een verbinding de juiste character encoding kiest. Dit doe je met een _set_charset() functie.

Als er al data in je database zit, dan is dit mogelijk gedaan met een verkeerde aanname over de te gebruiken character encoding. Mogelijk kan deze toevoeging (van _set_charset()) ertoe leiden dat data verkeerd wordt weergegeven, maar als hier sprake van is dan wil dit zeggen dat de data eigenlijk al verkeerd in je database zat...
Gewijzigd op 03/03/2015 14:17:47 door Thomas van den Heuvel
 
Pipo Clown

Pipo Clown

03/03/2015 14:08:03
Quote Anchor link
Thomas van den Heuvel op 03/03/2015 14:01:27:
Ingeval je mysqli gebruikt is dit mysql_real_escape_string($dbLink, $data) (procedureel) of $dbLink->real_escape_string($data) (object georiënteerd)


Moet dit niet mysqli_real_escape_string($dbLink, $data) zijn ?
 
Thomas van den Heuvel

Thomas van den Heuvel

03/03/2015 14:17:17
Quote Anchor link
Jawel. Zal het aanpassen. Maar als je dit foute voorbeeld zou overnemen dan zie je ook meteen dat dit niet werkt.
 
Jennifer Van W

Jennifer Van W

03/03/2015 16:21:45
Quote Anchor link
Thanks!!! dit werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
product_name_de='".mysql_real_escape_string($german['product_name_de'])."'
 



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.