我使用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
是否为空?
答案 0 :(得分:1)
我认为使用PHP odbc API并不是一种简单的方法。通常,您将使用不同的函数来处理返回SELECT的语句,而不是像UPDATE那样的语句。
如果这是一个运行任意语句的实用程序,则可以解析该语句。
这不是一个空的结果集,它根本没有结果集,您可以通过在调试器中检查结果或使用var_dump来区分它。