我想记录用户在 PHP 表单中输入的内容,并确保他们没有输入数据库表中已存在的数据。
我已经有了从用户输入将数据输入表中的代码,但我不确定如何检查重复项。例如,我想检查是否有相同名称的产品被再次添加。
$sql = "
INSERT INTO user_date
SELECT
product_name = '$_POST[product_name]'
,code = '$_POST[code]'
,comments = '$_POST[comments]'
WHERE
NOT EXISTS(SELECT * FROM user_data WHERE product_name = '$_POST[product_name]') ";
但是我收到一个错误:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'fdgfdg' code = 'fdgdfg' WHERE NOT EXISTS(SELECT *' at line 4
我了解安全问题。它不是一个实时系统,只是为了从中学习。
最佳答案
如果您不想重复插入,请在插入语句末尾使用 IGNORE
$sql = "
INSERT INTO user_date
values
('$_POST[product_name]'
,'$_POST[code]'
,'$_POST[comments]')
ON DUPLICATE KEY IGNORE";
所以这个方法可能对你有帮助
$result = mysql_query("SELECT * FROM user_data WHERE product_name = '$_POST[product_name]'");
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
// do something
}
else {
// do something else
}
关于php - 防止通过 PHP 表单将重复项添加到数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20379187/