2011-03-31 82 views
10

我已經做了很多搜索,但找不到有關我的問題的任何信息。我使用PDO與驅動PDO_DBLIB訪問MS SQL數據庫。我一般用準備好的語句,但如果任何查詢失敗,我沒有得到任何有關錯誤的附加信息,除了這一點:PHP/PDO/MSSQL如何獲取錯誤信息?

General SQL Server error: Check messages from the SQL Server [241] (severity 16) [(null)]

有沒有人有一個提示,我該如何檢索有關的更多信息錯誤(語法錯誤在...)?

問候

邁克爾

回答

13

要找到該錯誤消息:

-- SQL 2005+ 
select * from sys.messages where message_id = 241 
-- SQL 2000 
select * from sysmessages where error = 241 

看來,PDO是消除由於某些原因,實際的錯誤信息文本,但由於documentation說PDO_DBLIB是實驗性的,這可能只是一個錯誤。

您應該注意,自SQL 2005以來,DBLIB已由微軟提供deprecated,所以您應該幾乎可以肯定地使用不同的庫來連接到MSSQL。

+0

據我所知,MS的驅動程序適用於Windows。 – 2011-03-31 10:15:21

+0

@sims是的,所有的Microsoft SQL Server驅動程序僅Windows(除JDBC驅動程序),但由於OP沒有提到他的OS,甚至SQL Server版本很難知道他的情況下最好的答案是什麼。 – Pondlife 2011-04-01 13:40:35

+0

是的,我只是覺得我會爲那些找到這個頁面的人清楚地說明。 – 2011-04-03 13:44:03

1

SQL Server Error Messages

錯誤241:語法錯誤從字符串轉換日期時間

此格式爲我的作品:date("Ymd H:i:s");