当您构建查询时,您需要转义您插入的数据。
您至少需要在 PHP 中使用 addlashes() 函数,如下所示:
$sql = "INSERT INTO table SET name = '".addslashes($name)."', sku = '".addslashes($number)."', description = '".addslashes($desc)."'";
但是更正确的方法是使用与添加斜杠不同的函数,它可以正确处理数据中的所有字符,而不仅仅是撇号。
我正在使用我的自定义“转义”功能,如下所示:
function escape($text)
{
return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z'), $text);
}
所以使用这个函数,你会写:
$sql = "INSERT INTO table SET name = '".escape($name)."', sku = '".escape($number)."', description = '".escape($desc)."'";