我已经在这里阅读了几篇关于以下错误的帖子:
[Microsoft] [SQL Server Native Client 11.0] [SQL Server]执行SQL 直;没有光标。
但是,我似乎无法找出它在我的开发服务器上运行的原因,而不是在我的实时服务器上运行。据我所知,用户在SSMS中拥有正确的权限,并且PHP ini文件是相同的。
我如何调用我的存储过程(在开发中工作):
$tsql = 'EXEC '.SITE_DATABASE.'.'.$db_procedure.' '.$params_new.'';
$result = $this->db->single($tsql);
单个函数将SQL传递给以下代码,但抛出异常:
$params = array();
$options = array('Scrollable' => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($this->handle, $sql, $params, $options) or $this->setError('Unable to query database:', sqlsrv_errors(), $sql);
if ($stmt === false) {
throw new Exception("Query failed:\n" . var_export(sqlsrv_errors(), true));
}
return $stmt;
SQL Server Management Studio的用户已在两台服务器上被授予执行权,正如我所说,PHP ini文件是相同的。是否有任何权限可能是为什么它不能在实时服务器上工作,我错过了?如果没有,为什么:
$options = array('Scrollable' => SQLSRV_CURSOR_KEYSET);
在服务器设置相同时,Live但不是Dev的问题? (一个是另一个的克隆)。
答案 0 :(得分:0)
我的案例中的问题只是一个被忽略的调试选择语句,该语句没有被注释掉。 (是的,我觉得现在很傻!)
注释掉这个问题解决了这个问题,它在Live上运行。