直接执行SQL;调用存储过程时,PHP中没有游标

时间:2011-01-24 01:05:48

标签: php sql-server

尝试使用sqlsrv驱动程序从PHP执行存储过程时出现以下错误:

Executing SQL directly; no cursor

4 个答案:

答案 0 :(得分:4)

为您的连接添加游标选项:

$connection = odbc_connect('host','username','password', 1)
          or die('Connection failed!');

密码插入后cursor_option 1 < - 此选项丢失。

答案 1 :(得分:3)

当我使用基本上这样做的代码时,我得到了同样的错误:

$options = array( "Scrollable"=>SQLSRV_CURSOR_STATIC);
$sql = "exec dbs_webgetnextcount 'expense'";
sqlsrv_query($db,$sql,null,$options);

我通过不设置光标来修复它。

$sql = "exec dbs_webgetnextcount 'expense'";
sqlsrv_query($db,$sql);

PS。我在select语句中执行CURSOR_STATIC选项,以便sqlsrv_num_rows()给出正确的数字。

答案 2 :(得分:3)

我遇到了与Jon相同的问题,但我想,因为它只是sql数据访问组件生成的警告,并且查询仍然成功完成,您可以使用sqlsrv_configure("WarningsReturnAsErrors", 0);

在sqlsrv.exe中禁用它

答案 3 :(得分:0)