Maison >base de données >tutoriel mysql >Comment gérer correctement les apostrophes dans les requêtes d'insertion MySQL pour éviter les erreurs de syntaxe ?
Dans MySQL, les requêtes d'insertion qui contiennent des apostrophes (guillemets simples) peuvent rencontrer des erreurs de syntaxe. Lorsque vous rencontrez l'erreur "Vous avez une erreur dans votre syntaxe SQL...", spécifiquement concernant les apostrophes, il existe des solutions pour garantir une insertion réussie des données.
La solution clé réside dans l'échappement des apostrophes à l'aide d'une barre oblique inverse () personnage. Par exemple, la chaîne « Kellogg's » devrait être écrite sous la forme « Kellogg's ». En échappant l'apostrophe avec une barre oblique inverse, MySQL interprète le caractère suivant comme un indicateur littéral plutôt que comme un indicateur de syntaxe.
De plus, il est conseillé d'utiliser la fonction mysql_real_escape_string() de MySQL lors de la préparation des données à insérer. Cette fonction échappe automatiquement les caractères spéciaux, y compris les apostrophes, ce qui en fait une protection complète contre les injections SQL potentielles. Prenons l'exemple suivant :
<code class="php">function insert($database, $table, $data_array) { $mysql_connect = connect_to_database(); mysql_select_db($database, $mysql_connect); foreach ($data_array as $key => $value) { $tmp_col[] = $key; $tmp_dat[] = "'" . mysql_real_escape_string($value) . "'"; // Escaping } $columns = join(',', $tmp_col); $data = join(',', $tmp_dat); $sql = 'INSERT INTO ' . $table . '(' . $columns . ')VALUES(' . $data . ')'; $result = mysql_query($sql, $mysql_connect); if (!$result) { echo 'MySQL Update Error: ' . mysql_error($mysql_connect); $result = ''; } else { return $result; } }</code>
En utilisant cette méthode, vous pouvez insérer des données contenant des apostrophes dans les tables MySQL sans erreurs de syntaxe ni vulnérabilités de sécurité.
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!