我正在尝试将某个日期添加1个月,然后保存新的 使用以下代码将数据发送到数据库。但我似乎得到了 错误说“类DateTime的对象无法转换为字符串”
//New Expiration Date
$expDate = new DateTime('2015-06-05');
$expDate->add(new DateInterval('P1M'));
$newExpDate = $expDate->format('Y-m-d');
//Extend
$stmt = $this->connection->prepare(' UPDATE users SET valid_until = :new_expire_date WHERE user_id = :user_id ');
$stmt->execute(array(':user_id' => $expDate,':new_expire_date' => $newExpDate));
最后一行是抛出错误的那一行
当我var_dump($newExpDate)
时,我得到了
string(10) "2015-07-05"
对我来说似乎很奇怪,我不知道是否有人 有什么想法......? 谢谢。
对不起伙计我的查询错了。我很惭愧:(
答案 0 :(得分:1)
传递给PDOStatement::execute()
的值应为scalars(字符串,整数,......)。您传递的第一个值$newExpDate
是DateTime
对象。
改为使用$expDate->format('Y-m-d');
。
答案 1 :(得分:0)
$ expDate不是字符串,它是datetime对象。您将:user_id指定为$ expDate。我想你想在这里做点别的事。 $ newExpDate是一个字符串,该语句的一部分似乎是正确的。重新定义您创建的数组的第一个元素,并确保这正是您的意图。