Lorsque vous essayez d'insérer des données contenant des guillemets simples dans une base de données MySQL, vous pouvez rencontrer une erreur. Le message d'erreur indique généralement un problème de syntaxe à proximité du caractère guillemet.
Pour résoudre ce problème, échappez les guillemets dans les données avec une barre oblique inverse (). Par exemple, "Kellogg's" doit être écrit comme "Kellogg's".
De plus, pour une sécurité accrue, il est recommandé d'utiliser la fonction mysql_real_escape_string pour échapper à toutes les entrées fournies par l'utilisateur, protégeant ainsi contre les injections SQL.
Considérez la version suivante de la fonction d'insertion qui intègre les deux techniques :
<code class="php">function insert($database, $table, $data_array) { // Establish MySQL connection and select database $mysql_connect = connect_to_database(); mysql_select_db($database, $mysql_connect); // Prepare column and data values for SQL command foreach ($data_array as $key => $value) { $tmp_col[] = $key; $tmp_dat[] = "'" . mysql_real_escape_string($value) . "'"; // Escape against SQL injections } $columns = join(',', $tmp_col); $data = join(',', $tmp_dat); // Construct and execute SQL command $sql = 'INSERT INTO ' . $table . '(' . $columns . ')VALUES(' . $data . ')'; $result = mysql_query($sql, $mysql_connect); // Handle SQL errors or return result if (!$result) { echo 'MySQL Update Error: ' . mysql_error($mysql_connect); $result = ''; } else { return $result; } }</code>
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!