2014-10-30 32 views
1

我正在使用PDO(dblib驅動程序)調用SQL Server存儲過程。發生錯誤時,它使用PRINT生成返回消息。問題是我無法使用errorInfo函數獲取消息。結果是空的,rowcount也返回-1。無法使用PHP PDO獲取SQL Server打印消息

例如,當我運行在SQL Server Management Studio中的存儲過程:

CALL x_prodcedure 1,2 

它輸出(不是行集):Invalid ID/data

當我做在PHP中相同的呼叫,沒有行集數據被發現,ERRORINFO回報:

Array 
(
    [0] => 00000 
    [1] => 0 
    [2] => (null) [0] (severity 0) [(null)] 
    [3] => 0 
    [4] => 0 
) 

不知道它的其他功能我可以用它來獲取「無效的ID /數據」消息

+0

任何反饋先生 – meda 2014-10-31 20:55:02

回答

0

其實PDO ERROR 000是查詢執行成功時的錯誤值。

你應該只在失敗時打印,否則你應該忽略。

在你的情況的東西沿着線:

if(!$stmt->execute(array(...))){ 
    var_dump($dbh->errorInfo()); //not outside of the failure block 
}else{ 
    var_dump($stmt->fetchAll()); 
} 

最有可能not a rowset不被視爲一個錯誤PDO