我正在测试一个html表单,它通过php将数据发送到sql数据库。我面临的问题是特殊字符打破了表单而不更新数据库。我没有测试过所有特殊字符,但主要是`
和'
是罪魁祸首。我已经尝试过mysql_escape_string,preg_replace和add_slashes但没有成功。我错过了什么?
$description = preg_replace('/[^A-Za-z0-9\ %&$=+*?()!.-]/', ' ', $_POST['description']);
$description = preg_replace("/[\n\r]/"," ",$description);
// Items Insert
foreach ($item as $index=>$value) {
$sqlItems .= "
INSERT INTO quote_items (quote_id, item, description, amount, gst)
VALUES ('$last_id', '$item[$index]', '$description[$index]', '$amount[$index]', '$gst[$index]');
";
}
提前致谢!
答案 0 :(得分:0)
你可以发布数据库电话吗? 特别是这两个字符在DB调用中会发生冲突。
`通常包含表或列名 而且'通常围绕着价值观。
这两个都会导致问题,但没有代码很难说
答案 1 :(得分:0)
你可以尝试这个(有点脏),但它应该允许保存这两个字符
$sqlItems .= '
INSERT INTO `quote_items` (quote_id, item, description, amount, gst)
VALUES ("'.$last_id.'", "'.$item[$index].'", "'.$description[$index].'", "'.$amount[$index].'", "'.$gst[$index].'");
';
编辑:对不起,报价已经反转