Rob*_*ght 6 php pdo insert-update
在尝试创建一个简单的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));
}
Run Code Online (Sandbox Code Playgroud)
它不检测更新功能是否可以使用if(!$pro);我们如何使这个工作.
Flu*_*feh 15
您正在分配$pro准备,而不是执行语句.
话虽如此,如果你使用的是mysql,你可以使用insert... on duplicate key update语法.
insert into $table (field, value) values (:name, :value) on duplicate key update value=:value2
Run Code Online (Sandbox Code Playgroud)
您不能两次使用相同的绑定参数,但可以将两个绑定参数设置为相同的值.
编辑:此mysql语法仅适用于存在密钥(主要或另一个唯一)并导致插入失败的情况.