在尝试创建一个简单的 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);
我们将如何使这一工作发挥作用。
您正在分配$pro
到准备语句,而不是执行语句。
话虽如此,如果你使用 mysql,你可以使用insert... on duplicate key update
syntax.
insert into $table (field, value) values (:name, :value) on duplicate key update value=:value2
您不能两次使用相同的绑定参数,但可以将两个绑定参数设置为相同的值。
编辑:这个mysql语法将only在存在键(主键或另一个唯一键)的情况下工作,并且会导致插入失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)