2011-01-24 41 views
1

我越来越想使用SQLSRV驱动程序从PHP执行存储过程时出现以下错误时:直接执行SQL;在PHP中没有游标调用存储过程

Executing SQL directly; no cursor 
+1

作为第一步,我总是建议使用谷歌搜索错误。通常你不是第一个遇到问题的人。尝试谷歌搜索“PHP sqlsrv直接执行SQL;没有光标” – 2011-01-24 01:30:21

+1

@PhpMyCoder和谷歌带我到这里 – 2012-11-19 08:44:20

回答

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()会给出正确的数字。

3

我有同样的问题,因为乔恩但我想,因为它仅仅是由SQL数据访问组件和查询仍然产生警告成功完成,你可以使用sqlsrv_configure("WarningsReturnAsErrors", 0);

2

添加光标sqlsrv.exe禁用选择您的连接:

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

密码插入cursor_option <之后 - 这个选项不见了。