Si vous avez l'intention d'inclure « s dans votre SQL, vous devez escape il:
There are several ways to include quote characters within a string:
- A “'” inside a string quoted with “'” may be written as “''”.
- A “"” inside a string quoted with “"” may be written as “""”
- Precede the quote character by an escape character (“\”)
- A “'” inside a string quoted with “"” needs no special treatment and need not be doubled or escaped. In the same way, “"” inside a string quoted with “'” needs no special treatment.
De plus, si vous construisez le SQL dans un programme, vous devriez sérieusement envisager échapper des variables qui vont dans les requêtes SQL en utilisant mysql_real_escape_string
ou son équivalent dans votre langage de programmation. Ne pas le faire rendra votre application vulnérable aux attaques par injection SQL par quiconque contrôle la source de données pour ces variables (probablement vos utilisateurs, gardez à l'esprit que "vos utilisateurs" peut signifier "l'Internet entier" selon les circonstances).
Editer: Indiqué les instructions dev.mysql.com ci-dessus.
En regardant votre nom d'utilisateur, je peux dire que mysql_real_escape_string (voir ma réponse ci-dessous) est également disponible en PHP: http://www.php.net/manual/fr/function.mysql-real-escape -string.php :-) – Jon
@Jon: Oui, vous avez raison, j'ai complètement oublié ça ... merci quand même. –