Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在重复钥匙上工作不正常_Mysql_On Duplicate Key - Fatal编程技术网

Mysql 在重复钥匙上工作不正常

Mysql 在重复钥匙上工作不正常,mysql,on-duplicate-key,Mysql,On Duplicate Key,我正在运行以下查询,但得到一个错误。我认为它来自重复键上的部分,但我不能100%确定正确的语法是什么 <?php $form_id = $form->data['form_id']; $cfid = $form->data['cf_id']; $datesent = $form->data['datesent']; $query = mysql_query(" INSERT INTO `email_history` ( `cf_id` , `$form_id` )

我正在运行以下查询,但得到一个错误。我认为它来自重复键上的
部分,但我不能100%确定正确的语法是什么

<?php
 $form_id = $form->data['form_id'];
 $cfid = $form->data['cf_id'];
 $datesent = $form->data['datesent'];
 $query = mysql_query("
INSERT INTO `email_history` (
`cf_id` ,
`$form_id`
)
VALUES (
'$cfid', '$datesent'
)
ON DUPLICATE KEY 
UPDATE INTO
`email_history` (
`$form_id`
)
VALUES (
'$datesent'
);
") or die(mysql_error());
?>
的正确语法如下所述

请注意,这只是一个示例代码段,但应该清楚为什么您提供的代码段无法执行

INSERT INTO tbl (
 col1, col2, ... , colN
) VALUES (
  @val1, @val2, ..., @valN
) ON DUPLICATE KEY UPDATE
  col3 = VALUES(col3), col4 = @val4

文档


在我的代码中会是什么样子?
$form\u id=$form->data['form\u id'];
$cfid=$form->data['cf_id'];
$datesent=$form->data['datesent'];
$query=mysql\u query(的正确语法如下所述

请注意,这只是一个示例代码段,但应该清楚为什么您提供的代码段无法执行

INSERT INTO tbl (
 col1, col2, ... , colN
) VALUES (
  @val1, @val2, ..., @valN
) ON DUPLICATE KEY UPDATE
  col3 = VALUES(col3), col4 = @val4

文档


在我的代码中会是什么样子?
$form\u id=$form->data['form\u id'];
$cfid=$form->data['cf_id'];
$datesent=$form->data['datesent'];

$query=mysql\u query(对于这种类型的查询,允许的语法中没有'into',更新部分本身是错误的。您在SQL-query末尾有一个额外的
);
。对于这种类型的查询,允许的语法中没有'into',更新部分本身是错误的。您有一个额外的
)。
$form_id  = $form->data['form_id'];
$cfid     = $form->data['cf_id'];
$datesent = $form->data['datesent'];

$query = mysql_query (<<<EOT
  INSERT INTO `email_history` (`cf_id`, `$form_id`)
  VALUES ('$cfid', '$datesent')
  ON DUPLICATE KEY UPDATE `$form_id` = VALUES(`$form_id`)
EOT
) or die (mysql_error ());