你的錯誤似乎清楚地說明是什麼問題:
ERROR: invalid input syntax for type timestamp: ""
看來你的查詢試圖插入一個空字符串成具有類型「時間戳」的PostgreSQL的領域。如果你將某種類型的無效的字符串,它應該出現在錯誤您所recieving喜歡:
ERROR: invalid input syntax for type timestamp: "foobardtimestamp"
或者,你的情況,如果你期望的字符串被傳遞,您的錯誤可能是這個樣子:
ERROR: invalid input syntax for type timestamp: "2002-03-11"
...但錯誤不說,這使我懷疑您的字符串實際上並沒有獲得通過到查詢想您所想。事實如前所述:PostgreSQL應該完全有能力處理2002-03-11
作爲有效的時間戳字符串。
PostgreSQL不喜歡插入''(空字符串)作爲時間戳,並會抱怨您提供的錯誤。
如果你想提供一個空字符串,你需要確保你沒有NOT NULL
約束列,並且你需要使用null
而不是空字符串。如果你沒有意義發送一個空字符串,我會檢查$pdo->quote($date)
的值以確保你得到了你想要返回的字符串。
您也可以在實際運行查詢之前嘗試輸出生成的SQL,以確保它看起來正確。我有一種感覺,如果你這樣做,它會是這個樣子:
INSERT INTO dates(date) VALUES('')
而且,它的價值,你的例子說,你正在運行: $pdo->query($date);
時,我相當肯定你想要的:$pdo->query($query);
$ pdo是否指向一個PDO對象?通話報價的回報價值是多少? – Zed 2009-08-21 12:58:53
是的,忘記提及。 $ pdo指向pdo對象 – Roland 2009-08-21 13:00:09