[英]If Record exists UPDATE MySql Table or else INSERT using PHP
[英]MYSQL query update or insert in PHP using if else
$getCoins = $this->code = $this->conn->prepare("UPDATE coins SET name = ? WHERE id_name = ? IF @@ROWCOUNT = 0 INSERT INTO coins (id_name) VALUES (?)");
for ($i=0; $i < count($coins) ; $i++) {
$id_name = $coins[$i]["id"];
$name = $coins[$i]["name"];
$getCoins = $this->code->bind_param('sss', $name, $id_name, $id_name);
$getCoins = $this->code->execute();
$getCoins = $this->code->store_result();
}
脚本返回我错误:
致命错误:未捕获错误:在布尔值上调用成员函数bind_param()...
问题是IF @@ROWCOUNT = 0
我尝试使用IF ELSEl
IF(SELECT COUNT(id_name) FROM coins WHERE id_name = 'bitcoin')
UPDATE coins SET name = 'xxx2' WHERE id_name = 'bitcoin'
ELSE
INSERT INTO coins (name) VALUES ('new_coins')
END IF
但听到的是错误:
#1064-语法错误'更新硬币SET名称='xxx2'在哪里id_name ='bitcoin'ELSE INSERT INTO coi'w linii 2
我使用这个答案链接
使用ON DUPLICATE KEY UPDATE
选项INSERT
。
INSERT INTO coins (id_name, name)
VALUES (?, ?)
ON DUPLICATE KEY UPDATE name = VALUES(name)
如果id_name
已经存在,则name
列将被更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.