[英]How to call a SQL Server stored procedure using pdo connection in php?
[英]Running a MS SQL server stored procedure with a mac in php using PDO
我正在嘗試使用Mac上的php在ms sql服務器的實例中執行存儲過程。
我最近購買了Macbook Pro,但在實現此功能時似乎遇到了實際問題。
我現在已經建立了一個連接,我知道它正在工作,就像我更改密碼一樣,我收到消息:
"Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[01002] Adaptive Server connection failed (severity 9)' in /Users/davidwhitwell/Sites/test/connect.php on line 6"
更正密碼不會給我錯誤。
我嘗試運行的腳本是:
$sql = $pdo->prepare("CALL [finance].[get_all_company_names]");
$sql->execute();
$results = $sql->fetchAll();
var_dump($results);
結果返回一個空數組。 我知道數據存在,並且正確的權限已執行該過程,因為我可以直接使用sql Server Management Studio執行此操作。
由於您提到即使使用簡單的選擇查詢也無法檢索任何數據,因此我建議向腳本中添加一些錯誤處理。
首先,我將向您的常規pdo對象添加一些異常處理。
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
當查詢失敗時,這將引發異常。 然后將執行結果包裝在try / catch語句中
try {
$sql = $pdo->prepare("CALL [finance].[get_all_company_names]");
$sql->execute();
$results = $sql->fetchAll();
var_dump($results);
} catch (PDOException $e) {
echo 'An error occurred: ' . $e->getMessage();
}
您創建的sql和pdo對象還具有一個稱為errorInfo的方法,該方法有時會顯示錯誤。
if($sql->execute()) {
$results = $sql->fetchAll();
}
else {
$error_info = $dbh->errorInfo();
print_r($error_info);
}
一些好的資源包括這些頁面
編輯
我相信最終是使用EXEC
調用MS SQL中的存儲過程
$sql = $pdo->prepare("EXEC [finance].[get_all_company_names]");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.