2013-04-14 29 views
0

我在使用PHP獲取SQL Server存儲過程時遇到問題。我的代碼如下。存儲過程期望將一個整數傳遞給它。顯示的消息是「存儲過程錯誤」。這顯示連接正在工作。我不確定有什麼問題。有人可以幫我嗎?謝謝。SQL Server存儲過程不能在PHP中工作

$db_connection = sqlsrv_connect($servername, $connectOpts); 

if($db_connection === false) { 
    echo ("Error connecting to the database."); 
    exit; 
} 

$sp_command = "EXEC usp_testsp @valint=?"; 
$sp_vals = array(array("3", SQLSRV_PARAM_IN)); 
$sp_execute = sqlsrv_query($db_connection, $sp_command, $sp_vals); 

if($sp_execute === false) {echo('Stored procedure error');} 
else {echo('Success');} 
sqlsrv_close($db_connection); 

回答

1

我沒有看到你的代碼有什麼問題,所以我認爲你的問題可能在你的數據庫本身。我可以想到兩種可能性。

  1. 您的存儲過程寫入不正確。如果是這種情況,你應該在這裏發佈存儲過程,以便我們可以查看它。
  2. 您的存儲過程安全設置不正確。您需要在SQL Server Management Studio中設置安全設置。我不記得設置安全設置的確切路徑,但它是這樣的:右鍵點擊usp_testsp - properties - security。然後使用數據庫登錄信息設置存儲過程。
+0

問題在於權限。這是我第一次存儲過程嘗試,所以我從來沒有想過這一點。謝謝。 – BBrown

+0

沒問題。當我第一次開始使用存儲過程時,遇到了同樣的問題。第一個總是最難的。布萊斯,感謝您修復我答案的格式。我剛加入這裏,還沒有學習基本的格式化技巧。 –