La documentation MySQL dit que cela devrait être \'
. Cependant, scite et mysql montrent que cela ''
fonctionne. J'ai vu ça et ça marche. Que devrais-je faire?
147
La documentation MySQL dit que cela devrait être \'
. Cependant, scite et mysql montrent que cela ''
fonctionne. J'ai vu ça et ça marche. Que devrais-je faire?
''
ou non\'
?\'
est spécifique à MySQL alors qu'il''
est conforme à ANSI SQL si je ne me trompe pasRéponses:
La documentation MySQL que vous citez en dit un peu plus que ce que vous mentionnez. Il dit aussi,
(De plus, vous avez lié à la version MySQL 5.0 du tableau 8.1. Séquences d'échappement de caractères spéciaux , et la version actuelle est 5.6 - mais le tableau 8.1 actuel . Séquences d'échappement de caractères spéciaux semble assez similaire.)
Je pense que la note Postgres sur le
backslash_quote (string)
paramètre est informative:Cela me dit qu'utiliser un caractère guillemet simple doublé est un meilleur choix global et à long terme que d'utiliser une barre oblique inverse pour échapper au guillemet simple.
Maintenant, si vous souhaitez également ajouter le choix de la langue, le choix de la base de données SQL et ses bizarreries non standard, et le choix du cadre de requête à l'équation, alors vous pourriez vous retrouver avec un choix différent. Vous ne donnez pas beaucoup d'informations sur vos contraintes.
la source
Le SQL standard utilise des guillemets doublés; MySQL doit accepter cela pour être raisonnablement conforme.
la source
'
» à l'intérieur d'une chaîne entre guillemets «'
» peut s'écrire «''
» . Un «"
» à l'intérieur d'une chaîne entre guillemets «"
» peut être écrit «""
». Faites précéder le caractère guillemet par un caractère d'échappement («` `»).Je pense que user2087510 voulait dire:
J'ai également utilisé cela avec succès.
la source
écris juste
''
à la place de'
je veux dire deux fois'
la source
Voici un exemple:
Utilisez simplement des guillemets doubles pour entourer le guillemet simple.
Si vous insistez pour utiliser des guillemets simples (et la nécessité d'échapper au caractère):
la source
Il y a trois façons dont je suis conscient. Le premier n'étant pas le plus joli et le second étant le moyen courant dans la plupart des langages de programmation:
'I mustn''t sin!'
\
avant le guillemet simple'
:'I mustn\'t sin!'
"I mustn't sin!"
la source
\'
car elle est utilisée par tant de langages de programmation, mais''
est prise en charge par plus de dialectes SQL, donc l'utilisation de l'option 1 est meilleure pour la compatibilité. Sqlite, par exemple, ne fonctionne pas avec les échappements antislash.Remplacez la chaîne
où valeur est votre chaîne qui va stocker dans votre base de données.
https://www.npmjs.com/package/mysql-apostrophe
la source
Je pense que si vous avez un point de données avec une apostrophe, vous pouvez ajouter une apostrophe avant l'apostrophe
par exemple. 'C'est le logement de John'
Ici, MYSQL suppose deux phrases «C'est chez John»
Vous pouvez mettre «C'est chez John». Je pense que cela devrait fonctionner de cette façon.
la source
En PHP, j'aime utiliser mysqli_real_escape_string () qui échappe les caractères spéciaux dans une chaîne pour une utilisation dans une instruction SQL.
voir https://www.php.net/manual/en/mysqli.real-escape-string.php
la source
Peut-être hors sujet, mais peut-être êtes-vous venu ici à la recherche d'un moyen de nettoyer l'entrée de texte à partir d'un formulaire HTML, de sorte que lorsqu'un utilisateur saisit le caractère apostrophe, il ne génère pas d'erreur lorsque vous essayez d'écrire le texte dans un SQL -table dans un DB. Il y a plusieurs façons de le faire, et vous voudrez peut-être aussi lire sur l'injection SQL, mais une option simple en PHP consiste à utiliser la fonction htmlspecialchars () qui convertira toutes vos apostrophes dans
'
lesquelles est peut-être ce que vous voulez stocker en tous cas.la source