繁体   English   中英

MYSQL查询更新或使用if插入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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM