Problemen met insert

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen de wilde

Jeroen de wilde

05/08/2019 12:38:48
Quote Anchor link
Beste,

Is het mogelijk voor bij een php sql insert woorden te gebruiken met ‘.
Als ik voorbeeld het woord côte à l’os wil invoeren krijg ik een sql error

Alvast bedankt.
 
PHP hulp

PHP hulp

06/11/2024 00:14:02
 
- Ariën  -
Beheerder

- Ariën -

05/08/2019 12:48:28
Quote Anchor link
Dat klopt, want deze single-quote moet je net als de anderen ook escapen omdat dit een onderdeel is van de SQL-syntax. Gebruik daarom altijd mysqli_real_escape_string() om de waarde heen.
Gewijzigd op 05/08/2019 13:59:27 door - Ariën -
 
Jeroen de wilde

Jeroen de wilde

05/08/2019 13:05:29
Quote Anchor link
Super alvast bedankt
 
Thomas van den Heuvel

Thomas van den Heuvel

05/08/2019 13:34:16
Quote Anchor link
- Ariën - op 05/08/2019 12:48:28:
want deze single-quote moet je ook escapen omdat dit een onderdeel is van de SQL-syntax.

Weet niet of dat helemaal juist verwoord is. Quotes in de DATA-delen moeten ge-escaped worden (ontdaan worden van hun speciale betekenis) omdat MySQL anders niet goed kan vaststellen wat DATA is, en wat onderdeel uitmaakt van de SQL-query. Beschouw:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO whatever (tekst) VALUES ('cote a l'os')

MySQL kan op deze manier niet goed bepalen wat DATA is (cote a l'os), en wat niet. Dit levert je een syntaxfout op.

Dit is ook een beetje een "waar rook is is vuur" topic. Houdt dit ook in dat je tot nu toe geen (enkele) escaping gebruikte voor wat voor DATA-velden dan ook?

En als je karakters met diakritische tekens gebruikt, zit jouw character encoding dan wel goed (zowel in database als daarbuiten)? Een correcte (en daarmee veilige) escaping hangt namelijk zeer sterk af van een juist gebruik van character encoding.
 



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.