3

我正在使用 PHP ODBC 库连接到 MSSQL 2008 服务器 ( http://php.net/manual/en/ref.uodbc.php )。

我的一些存储过程不返回记录集(例如,它们只是进行插入或更新)。我希望能够在这种情况下优雅地处理输出。在进行数据库调用后,输出被注入到一个数组中,该数组返回给应用程序进行处理。以下是代码的关键部分(不包括错误处理等):

$sql_result = odbc_exec($connection, $sql);
while ($row = odbc_fetch_array($sql_result)) {
    $resultArray[$i] = $row;
    $i++;
}

如果$sql_result已成功执行,但不包含记录集(因为它会在插入或更新之后)然后odbc_fetch_array触发此警告:

警告:odbc_fetch_row():此结果索引处没有可用的元组

理想情况下,我想先测试$sql_result一下它是否包含空记录集,但我尝试过的每一次明显尝试总是会导致相同的警告消息。

任何人都有一种检查是否$sql_result为空的简洁方法?

4

1 回答 1

1

我认为没有使用 PHP odbc API 的简单方法。通常,您会使用不同的函数来处理返回值的语句,例如 SELECT 和不返回值的 UPDATE。

如果这是一个运行任意语句的实用程序,您可以解析该语句。

这不是一个空的结果集,它根本不是结果集,您可以通过在调试器中检查结果或使用 var_dump 来区分。

于 2013-01-08T13:17:49.650 回答