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 ?

Comment gérer correctement les apostrophes dans les requêtes d'insertion MySQL pour éviter les erreurs de syntaxe ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 04:33:02410parcourir

How to Correctly Handle Apostrophes in MySQL Insert Queries to Prevent Syntax Errors?

Gestion des apostrophes dans les requêtes d'insertion MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn