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é consiste à échapper les 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 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 :
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;
}
}
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é.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3