2015-04-05 37 views
-1

我試圖將1個月添加到某個日期,然後使用以下代碼將新的 日期保存到數據庫。但我似乎得到 一個錯誤說「類的DateTime的對象無法轉換爲字符串」日期時間無法轉換爲字符串PDO查詢

//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

'$ newExpDate'沒有什麼錯,但是有'$ expDate' – 2015-04-05 13:30:45

+0

是的,我的錯誤,謝謝! – user3772 2015-04-05 13:32:00

+0

考慮關閉你的問題然後:) – 2015-04-05 13:32:58

回答

1

的傳遞給PDOStatement::execute()應該scalars(字符串,整數,...)。你通過了,$newExpDate第一個值的值,是一個DateTime對象。

使用$expDate->format('Y-m-d');代替。

0

$ expDate不是一個字符串,它是datetime對象,你有:user_id賦值爲$ expDate,我認爲你的意思是在這裏做一些其他的事情$ newExpDate是一個字符串,並且該部分語句似乎是正確的。你創建的數組的第一個元素,並確保這真的是你的意思。

相關問題