我只是修改一个简单的时间表脚本,如果我做一个简单的插入数据库一切都很好。我可以更新条目没有问题,我的问题是我想更新并保留信息(这与我正在使用的CONCAT正常工作),但只要我使用ON DUPLICATE KEY UPDATE,它就会中断。PHP/MYSQL INSERT ON DUPLICATE KEY失败
$sql="INSERT INTO sheet(employee, workdate, location, description, timein, timeout, timespent)
VALUES('$employee', CURDATE(), '$location', '$description', '$timein', '$timeout', '$timespent')";
//ON DUPLICATE KEY UPDATE
//location=VALUES(location),
//description=VALUES(description),
//timein=VALUES(timein),
//timeout=VALUES(timeout),
//timespent=VALUES(timespent)
//WHERE employee=$employee";
echo $sql;echo "<br>";
mysql_query($sql)or die(mysql_error());
如果我去掉重复的键,我收到了“您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的‘WHERE员工=’埃里克”正确的语法手册'在第9行“错误。唯一我能想到的是我在一张完全空的桌子上这样做,但我认为INSERT会解决这个问题。我所有的$变量都是干净的(没有PDO,也要学习)real_escape_string
$sql="INSERT INTO sheet(employee, workdate, location, description, timein, timeout, timespent)
VALUES('$employee', CURDATE(), '$location', '$description', '$timein', '$timeout', '$timespent')
ON DUPLICATE KEY UPDATE
location=VALUES(location),
description=VALUES(description),
timein=VALUES(timein),
timeout=VALUES(timeout),
timespent=VALUES(timespent)
WHERE employee='$employee'";
echo $sql;echo "<br>";
mysql_query($sql)or die(mysql_error());
什么您使用的是MySQL服务器的版本? – halfer 2013-04-10 17:40:45
我在5.5上通过Webmatrix运行这个测试,然后当我很高兴的时候上传到我的虚拟主机。 – 2013-04-10 17:43:30
删除'WHERE'条件,mySQL已经知道了。 – Sammitch 2013-04-10 17:43:36