我目前使用以下查询成功连接到Windows 2008上的SQL数据库;
$result = mssql_query("EXEC dbo.stored_procedure_name @param_level = 2");
我的查询基于用VB / ADO编写的现有代码,看起来像;
If level = "" Then level = 1
cmdTT.ActiveConnection = connStrTest1
set objParam=cmdTT.CreateParameter("@param_level", adInteger, adParamInput, 4, level)
cmdTT.Parameters.Append objParam
set rsTT = cmdTT.Execute
所以我尝试的是以下内容;
$f = 2;
$stmt = mssql_init('dbo.stored_procedure_name', $mssql_link);
mssql_bind($stmt, "@param_level", $f, SQLINT4, false);
mssql_execute($stmt);
但无论变化如何,似乎总是打印出屏幕上的警告,“警告:mssql_execute()[function.mssql-execute]:存储过程执行失败... ”
这是我调试此问题的最佳方式吗?任何人都可以看到我的问题的明确解决方案吗?
我目前正在从LAMP堆栈远程连接到数据库。
非常感谢 伊恩
答案 0 :(得分:3)
这是来自使用FreeTDS的Linux服务器吗?如果是这样,我想知道这是否与TDS版本有关。在/etc/freetds.conf中尝试使用tds version = 8.0
答案 1 :(得分:1)
在sql编辑器中使用硬编码的参数从w /运行存储过程的内容。你会收到更详细的错误消息。
答案 2 :(得分:1)
我知道这是一个很老的帖子,但我相信它会帮助别人。
执行后必须添加mssql_free_statement($stmt)
。