DateTime无法转换为字符串PDO查询

时间:2015-04-05 13:27:21

标签: php string datetime

我正在尝试将某个日期添加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"

对我来说似乎很奇怪,我不知道是否有人 有什么想法......? 谢谢。

对不起伙计我的查询错了。我很惭愧:(

2 个答案:

答案 0 :(得分:1)

传递给PDOStatement::execute()的值应为scalars(字符串,整数,......)。您传递的第一个值$newExpDateDateTime对象。

改为使用$expDate->format('Y-m-d');

答案 1 :(得分:0)

$ expDate不是字符串,它是datetime对象。您将:user_id指定为$ expDate。我想你想在这里做点别的事。 $ newExpDate是一个字符串,该语句的一部分似乎是正确的。重新定义您创建的数组的第一个元素,并确保这正是您的意图。