【发布时间】:2010-04-28 15:28:51
【问题描述】:
谷歌上没有太多关于这个错误的信息,所以我在这里问。我正在将 PHP Web 应用程序从使用 MySQL 切换到 SQL Server 2008(使用 ODBC,而不是 php_mssql)。运行查询或其他任何事情都不是问题,但是当我尝试执行 scope_identity(或任何类似功能)时,我收到错误“直接执行 SQL;没有光标”。我在插入后立即执行此操作,因此它仍应在范围内。运行相同的插入语句然后查询插入 ID 在 SQL Server Management Studio 中工作正常。这是我现在的代码(数据库包装类中的所有其他内容都适用于其他查询,所以我假设它现在不相关):
function insert_id(){
return $this->query_first("SELECT SCOPE_IDENTITY() as insert_id");
}
query_first 是一个从查询的第一个字段返回第一个结果的函数(基本上相当于 .net 上的 execute_scalar())。
完整的错误信息: 警告:odbc_exec() [function.odbc-exec]:SQL错误:[Microsoft][SQL Server Native Client 10.0][SQL Server]直接执行SQL;没有光标。,SQLExecDirect 中的 SQL 状态 01000 在 C:[...]\Database_MSSQL.php 第 110 行
【问题讨论】:
标签: php sql sql-server odbc cursor