我正在执行一个SQL Server存储过程,它应该返回一个输出参数(ErrCode)以及一个结果集。
我使用以下代码从PHP调用该过程,但到目前为止无法检索输出参数:
$stmt = mssql_init("addFaculty", $this->db);
mssql_bind($stmt, "@FacultyID", $FacultyID, SQLCHAR);
...imagine other parameters here...
mssql_bind($stmt, "@ErrCode", &$ErrCode, SQLINT1, TRUE, FALSE, 1);
$result = mssql_execute($stmt);
echo $ErrCode
$ ErrCode总是回显为0,即使它应该返回'1'或'2'。但是,当我在SQL Server Studio中执行该过程时,“消息”选项卡将正确显示“1”或“2”。
在进行研究时,我发现一条建议说您必须先使用mssql_next_result()
才能访问输出参数。我试过这个,但它只是返回了一个PHP
“警告:mssql_next_result():提供的参数不是有效的MS SQL_result资源”
我还在this thread中找到了对类似问题的引用,但没有看到真正的解决方案。
与该主题中的人一样,我正在使用Linux(CentOS)和PHP5以及MS SQL Server 2005.
有人对此有任何建议吗?我在之前的项目中也遇到过这样的问题,最后,只是放弃了使用输出参数(并在PHP中完成了我的所有error_checking),因为我无法弄明白。找到答案会很高兴:(
答案 0 :(得分:0)
答案 1 :(得分:0)
编辑:
您是否尝试过ADODB
答案 2 :(得分:0)
检查我关于这个问题的帖子,我使用了从Zend_Db_Table_Abstract扩展的类。我不使用纯PHP,仍然使用相应的框架。 Seens很好并且运行正常,我甚至还得到了结果集!希望它有所帮助: