gpt4 book ai didi

mysql - ON DUPLICATE KEY 无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:57 26 4
gpt4 key购买 nike

我正在运行以下查询,但出现错误。我认为它来自 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`
)
VALUES (
'$cfid', '$datesent'
)
ON DUPLICATE KEY
UPDATE INTO
`email_history` (
`$form_id`
)
VALUES (
'$datesent'
);
") or die(mysql_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 ')' at line 10

    <?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 `$form_id` = `$datesent`
);
") or die(mysql_error());
?>

最佳答案

ON DUPLICATE KEY 的正确语法是下面描述的很长的几行。

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

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

文档


这在我的代码中看起来如何?

$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 ());

什么是VALUES($form_id)做什么?

它将产生最初作为名为 $form_id 的列的值传递的值.

<<<EOT有什么用?

在前面的代码片段中,我们使用了 HEREDOC让一个字符串以一种简单的方式跨越多行。您可以在 documentation for heredocs 中阅读更多相关信息.

关于mysql - ON DUPLICATE KEY 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com