91 votes

Comment puis-je échapper aux caractères spéciaux dans MySQL ?

Par exemple :

select * from tablename where fields like "%string "hi"  %";

Erreur :

Vous avez une erreur dans la syntaxe SQL ; consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de 'hi" "' à la ligne 1.

Comment puis-je construire cette requête ?

8voto

nickf Points 185423

Vous pouvez utiliser mysql_real_escape_stringing . mysql_real_escape_string() ne s'échappe pas % y _ Vous devez donc échapper aux caractères de remplacement MySQL ( % y _ ) séparément.

1voto

Vishnu Prasanth G Points 845

Pour tester comment insérer les guillemets doubles dans MySQL à l'aide du terminal, vous pouvez utiliser la méthode suivante :

TableName(Name,DString) - > Schéma
insert into TableName values("Name", "My QQDoubleQuotedStringQQ")

Après avoir inséré la valeur, vous pouvez mettre à jour la valeur dans la base de données avec des guillemets doubles ou simples :

update table TableName replace(Dstring, "QQ", "\"")

0voto

Si vous utilisez une variable lors d'une recherche dans une chaîne de caractères, mysql_real_escape_string() est bon pour vous. C'est juste une suggestion :

$char = "and way's 'hihi'";
$myvar = mysql_real_escape_string($char);

select * from tablename where fields like "%string $myvar  %";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X