我有一个问题,不是检查是否有重复,而是下面的脚本只是将行插入到mysql中,根本没有更新。我试过一遍又一遍,但总是有重复。ON DUPLICATE KEY仍然复制插入
我究竟在做什么错在这里?
if ($completeStatus == "0") {
// Get the default questions responses and insert into database
$questionsAnswered = $_GET['questions'];
foreach($questionsAnswered as $key => $answers){
$query = "INSERT INTO survey_ResponseDetail (responseHeader,
questionID,
questionText,
ansLikelihood,
ansExpConsq,
ansRepRisk,
currWayMitigate
)
VALUES ('$ResponseHeader',
'$key',
'test1',
'$answers[1]',
'$answers[2]',
'$answers[3]',
'$answers[4]'
)
ON DUPLICATE KEY UPDATE ansLikelihood = '$answers[1]',
ansExpConsq = '$answers[2]',
ansRepRisk = '$answers[3]',
currWayMitigate = '$answers[4]',
id = LAST_INSERT_ID(id)";
$dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());
}
不得不问。您在survey_ResponseDetail表上确实有PK或其他唯一约束。对? – JohnFx
我对mySQL的知识现在非常弱,所以我不知道。如果我在创建表格时必须设置它,那么不需要。 –