当尝试将包含单引号的数据插入 MySQL 数据库时,您可能会遇到错误。该错误消息通常表示引号字符附近存在语法问题。
要解决此问题,请使用反斜杠 () 对数据中的引号进行转义。例如,“Kellogg's”应写为“Kellogg's”。
此外,为了提高安全性,建议使用 mysql_real_escape_string 函数转义所有用户提供的输入,防止 SQL 注入。
考虑结合了这两种技术的插入函数的以下版本:
<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>
以上是如何克服MySQL在处理数据插入中的撇号时出错?的详细内容。更多信息请关注PHP中文网其他相关文章!