我試圖通過PHP將MySQL的NOW()
函數傳遞給PDO的指定值,並且失敗。我發現我必須直接將它傳遞給MySQL語句。但在我的情況下,有時datetime
字段可以是空的。MySQL PDO NOW()作爲賦值 - 是否有可能?
是否可以通過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
,而不是使用指定的值。
我試過你的第二個建議的解決方案,它的工作完美。感謝您的幫助! –