我试图NOW()
通过 PHP 将 MySQL 的函数传递给 PDO 的赋值,但它失败了。我发现我必须将它直接传递到 MySQL 语句中。但就我而言,有时该datetime
字段可能为空。
甚至可以NOW()
作为 PHP 的赋值传递吗?
一些代码:
我正在动态构建查询,并且datetime
取决于其他一些变量的值。
if(isset($accountStatus)&&$accountStatus!=""){
$tmp[':account_status']=$accountStatus;
if($accountStatus==0){
$tmp[':vCodeExpire']="NOW() + INTERVAL 1 WEEK";
$tmp[':verified']=0;
}else{
$tmp[':verified']=1;
}
}
构建 SQL 查询:
$sql="";
foreach($tmp as $k=>$v){
$sql.=str_replace(":","",$k)."=".$k.",";
}
$sql=substr($sql,0,strlen($sql)-1);
然后,我运行 PDO 查询:
$db=$pdo->prepare("UPDATE users SET $sql WHERE id=:id");
$db->execute($tmp);
我尝试用单引号替换双引号NOW() + INTERVAL 1 WEEK
,但没有运气。我也尝试在 PDO 查询周围使用单引号,但随后$sql
直接传递,而不是使用分配的值。