我在下面的代码中遇到了问题,它似乎工作正常,并且创建记录很好,问题是每次我点击提交,而不是更新记录,它只是创建一个新的记录。如果我关闭主键的自动增量,它会很好地更新记录,但随后不会创建任何新的记录,看起来不是其中之一:-S
<?php
$query = mysql_query("
INSERT INTO hqfjt_chronoforms_data_emailform
(cf_id,cf_uid,emailformname,datesent)
VALUES
('$_POST[cf_id]','$_POST[cf_uid]','$_POST[emailformname]','$_POST[datesent]')
ON DUPLICATE KEY UPDATE
datesent='$_POST[datesent]';
") or die(mysql_error());
?>
发布于 2011-12-30 07:38:38
我不能想象这就是问题所在,但当您将ID转换为int
并省略引号时,是否会发生同样的事情?
<?php
$query = mysql_query("
INSERT INTO hqfjt_chronoforms_data_emailform
(cf_id,cf_uid,emailformname,datesent)
VALUES
(" . (int) $_POST['cf_id'] . ",'$_POST[cf_uid]','$_POST[emailformname]','$_POST[datesent]')
ON DUPLICATE KEY UPDATE
datesent='$_POST[datesent]';
") or die(mysql_error());
?>
顺便说一句,您真的不应该在没有mysql_real_escape_string
的情况下在查询中使用$_POST
变量,或者更好的做法是使用预准备语句(PDO或mysqli)。
https://stackoverflow.com/questions/8674638
复制相似问题