db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows 返回受 SQL 语句影响的行数

描述

db2_num_rows(resource $stmt): int|false

返回受 SQL 语句删除、插入或更新的行数。

要确定 SELECT 语句将返回的行数,请使用与您要执行的 SELECT 语句相同的谓词发出 SELECT COUNT(*),并检索该值。

如果您的应用程序逻辑检查 SELECT 语句返回的行数并在行数为 0 时分支,请考虑修改您的应用程序以尝试使用以下方法之一返回第一行:db2_fetch_assoc()db2_fetch_both()db2_fetch_array()db2_fetch_row(),如果获取函数返回 false,则进行分支。

注意:

如果您使用可滚动游标发出 SELECT 语句,db2_num_rows() 将返回 SELECT 语句返回的行数。但是,与可滚动游标相关的开销会显着降低应用程序的性能,因此,如果这是您考虑使用可滚动游标的唯一原因,则应使用仅向前游标,并通过调用 SELECT COUNT(*) 或依赖于 bool 获取函数的返回值来实现等效的功能,并获得更好的性能。

参数

stmt

包含结果集的有效 stmt 资源。

返回值

返回由指定语句句柄发出的最后一个 SQL 语句影响的行数,或者在失败时返回 false

添加笔记

用户贡献的笔记 1 笔记

rmarsh221 at gmail dot com
7 年前
$inseq = 598;
$delSql = "DELETE FROM libname.tablename WHERE inseq=?";
$stmt = db2_prepare($conn,$delSql);
$res = db2_execute($stmt,array($inseq));
if(!$res)
{
throw new Exception(db2_stmt_errormsg(), db2_stmt_error());
} else {
$rows = db2_num_rows($stmt);
if ($rows > 0) {
echo "成功!从 libname.tablename 中删除了 ".$inseq." 条记录: 行数=".$rows;
} else {
echo "在 libname.tablename 中未找到要删除的行";
}

}
To Top