gpt4 book ai didi

php - 使用 INSERT ... ON DUPLICATE KEY UPDATE 更新表时出错

转载 作者:行者123 更新时间:2023-11-29 17:30:44 25 4
gpt4 key购买 nike

我对 mySQL 比较陌生。由于某种原因,我的 INSERT ON DUPLICATE KEY UPDATE 命令出现错误。它看起来像这样:

print "Writing status to file \n";
$mysqliNode = new mysqli('blah.net', 'us', 'pw', "CATV_Mon");
$stmtNode = $mysqliNode->prepare("INSERT INTO CATV_Mon.nodeDetail (nodID, pctRedYellow, count)
VALUES (?,?,?)
ON DUPLICATE KEY UPDATE pctRedYellow = VALUES(percentRedYellow)
,count = VALUES(count)
");
$index = "ABCF";
$tempCount = 5000;
$node_percent_down = 55;
$stmtNode->bind_param("sss",$index,$node_percent_down,$tempCount);
if(!$stmtNode->execute) {
$tempErr = "Error getting Node $nod info and put in table: " . $stmtNode->error;
printf($tempErr . "\n"); //show mysql execute error if exists
$err->logThis($tempErr);
printf ("will die on purpose now \n");
die();
} //if stmtNode didn't execute ok

当我运行它时,我看到(它没有显示错误消息):

Writing status to file
Error getting Node WILL info and put in table:
will die on purpose now

我尝试在 MySQL Workbench 中使用该语句:

INSERT INTO CATV_Mon.nodeDetail (nodID, pctRedYellow, count)
VALUES ("ABCE",30,5000)
ON DUPLICATE KEY UPDATE pctRedYellow = VALUES(pctRedYellow)
,count = VALUES(count) ;

这有效,并表示 1 行受到影响,我在表中看到它。当我更改值以更新并在工作台中运行它时,它会更新更改的内容并且在表中看起来不错。

有什么想法为什么它在 php 脚本中失败吗?我尝试更改要插入的nodeID,但同样失败了。

表结构为:nodID varchar(20) 主键pctRedYellow int(5)计数 int(8)

我在网上搜索了一下,看起来我正在做我应该做的事情。 insert on duplicate key update 。我以为我的语句中需要 WHERE,但它在工作台中工作,并且链接中的语法看起来不错。

最佳答案

我发现了这个,并修复了它。 bind param doesn't work

$stmtNode->bind_param('sii', $index, $node_percent_down, $tempCount);

关于php - 使用 INSERT ... ON DUPLICATE KEY UPDATE 更新表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50684181/

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