我們有一個uni學生正在做工作經驗,他正在爲我們做一個Wordpress原型(因爲我們既沒有Wordpress也沒有PHP經驗)。無效的參數編號,SQL狀態S1093 php odbc mssql
它的運行在Windows服務器上,而WordPress的本身在MySQL正在運行,因爲我們所有的數據庫都在MS SQL服務器2005/2008和他試圖使用此代碼來調用一個PHP頁面的存儲過程:
$connection = odbc_connect('DB', 'UNAME', 'PWORD');
$request = odbc_prepare($connection, "CALL ProcName(?, ?, ?)");
if(!$request) die("Could not prepare statement:" . odbc_errormsg());
$result = odbc_execute($request, array("var1", "var2", "var3"));
if(!$result) die("Could not execute statement:" . odbc_errormsg());
存儲過程是這樣的:
ROCEDURE [dbo].[ProcName]
(@option1 varchar(50),
@option2 varchar(50),
@option3 varchar(50))
AS
... lots of logic end with...
select * from tblName
的存儲過程是通過.NET頁面和CMS的Livelink頁面中都和正常工作,但是,當我們試圖從PHP調用它,它用錯誤:
"odbc_execute(): SQL error: [Microsoft][ODBC SQL Server Driver]Invalid parameter number, SQL state S1093 in SQLDescribeParameter in C:\inetpub\wordpress\test.php on line 29"
奇怪的是,如果我們將過程調用重命名爲不存在的存儲過程,那麼它的錯誤與事件完全相同,而不是存儲過程無法找到錯誤的類型。
我們可以直接運行sql,即「select * from etc」,它會返回數據,但我們不能調用存儲過程(當然我們使用這些存儲過程!)。
任何想法,他可能會出錯?
這是什麼特定存儲過程的名稱?或者它們都發生了嗎?並且不應該有'out'參數? – DevZer0