使用PHP为SQL数据库准备HTML表单输入

时间:2016-10-18 21:48:46

标签: php html mysql

我正在测试一个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]');
";
}

提前致谢!

2 个答案:

答案 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].'");
';
编辑:对不起,报价已经反转