尝试使用sqlsrv驱动程序从PHP执行存储过程时出现以下错误:
Executing SQL directly; no cursor
答案 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);
答案 3 :(得分:0)