2014-06-19 25 views
0

我試圖從PHP調用mssql存儲過程,並嘗試傳遞貨幣參數時失敗。這是我的代碼:PHP mssql_bind傳遞貨幣數據類型失敗

$proc = mssql_init("sp_something"); 

mssql_bind($proc, "@param1", $param1, SQLINT4, false, false); 
mssql_bind($proc, "@param2", $param2, SQLINT4, false, false); 
mssql_bind($proc, "@param3", $param3, SQLVARCHAR, false, false, 5); 
mssql_bind($proc, "@param4", $param4, SQLINT4, false, false); 
mssql_bind($proc, "@param5", $param5, SQLMONEY, false, false); 
mssql_bind($proc, "@param6", $param6, SQLMONEY, false, false); 
mssql_bind($proc, "@param7", $param7, SQLVARCHAR, true); 

mssql_execute($proc); 

echo mssql_get_last_message(); 

和失敗,最後一條消息是:

Procedure or function 'sp_something' expects parameter '@param5', 
which was not supplied. 

這是我的存儲過程:

ALTER PROCEDURE [dbo].[sp_something] 
@param1 smallint, 
@param2 smallint, 
@param3 varchar(8), 
@param4 int, 
@param5 money, 
@param6 money, 
@param7 bit OUTPUT AS 

--some stored proc 

我嘗試從SQL Server Management Studio中exec的它,其成功案例:

exec sp_something 2014,5,'123456',1,12345.23,22222.33,0 

當您想要傳遞貨幣數據類型時,是否有任何棘手的方法?因爲我有沒有錢,參數,另一個存儲過程,它運行平穩..

回答

0

所以最後我只是SQLVARCHAR使用金錢參數和它的作品以及

mssql_bind($proc, "@param5", $param5, SQLVARCHAR, false, false); 
mssql_bind($proc, "@param6", $param6, SQLVARCHAR, false, false);