Échapper aux caractères génériques MySQL : clarifier les idées fausses
MySQL utilise des caractères spécifiques comme caractères génériques pour faciliter la correspondance de modèles dans les requêtes. Cependant, dans certains contextes, il est crucial de comprendre les subtilités de l'échappement de ces caractères génériques pour garantir des instructions SQL précises et cohérentes.
Échapper % et _ pour les littéraux de chaîne
Contraire par rapport à l'hypothèse initiale, il n'est pas nécessaire d'échapper aux caractères génériques MySQL % et _ à l'aide d'addcslashes lors de leur attribution à des littéraux de chaîne normaux. La fonction mysql_real_escape_string est adéquate à cet effet.
La nuance de l'échappement dans les expressions LIKE
Lors de la préparation de chaînes pour les instructions LIKE, une approche plus nuancée est nécessaire. Dans une expression LIKE, % et _ deviennent des caractères spéciaux, ainsi que le caractère d'échappement lui-même. Pour éviter toute mauvaise interprétation, il est essentiel d'effectuer deux niveaux d'échappement :
Résoudre le Incohérences apparentes
La raison pour laquelle l'astérisque ("", '') apparaît sans échappement lorsqu'il est renvoyé de la base de données est que MySQL filtre automatiquement les s. Il s'agit d'une déviation de ANSI SQL, qui stipule que les caractères autres que % et _ ne doivent pas être échappés.
Considérations sur la portabilité pour LIKE Échapper
Pour garantir la portabilité entre les bases de données, il est conseillé de spécifier un caractère d'échappement alternatif à l'aide de la construction LIKE ... ESCAPE ... Cela remplace le comportement par défaut et élimine le recours à l'écart de MySQL par rapport à ANSI. SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!