在尝试创建一个简单的
PHP PDO更新函数时,如果找不到该字段会插入它,我创建了这个小片段.
function updateorcreate($table,$name,$value){ global $sodb; $pro = $sodb->prepare("UPDATE `$table` SET value = :value WHERE field = :name"); if(!$pro){ $pro = $sodb->prepare("INSERT INTO `$table` (field,value) VALUES (:name,:value)"); } $pro->execute(array(':name'=>$name,':value'=>$value)); }
它没有检测到更新功能是否适用于if(!$pro);我们如何使这个工作.
@H_502_5@@H_502_5@
您将$pro分配给prepare,而不是execute语句.
话虽如此,如果你使用的是MysqL,你可以使用insert … on duplicate key update Syntax.
insert into $table (field,value) values (:name,:value) on duplicate key update value=:value2
您不能两次使用相同的绑定参数,但可以将两个绑定参数设置为相同的值.
编辑:此MysqL语法仅适用于存在密钥(主要或另一个唯一)并导致插入失败的情况.
@H_502_5@ 原文链接:https://www.f2er.com/php/133230.html