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
、割り当てられた値を使用せずに直接渡されます。