db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rowsВозвращает количество строк, затронутых SQL-запросом

Описание

db2_num_rows(resource $stmt): int|false

Возвращает количество строк, удалённых, добавленных или обновлённых SQL-запросом.

Чтобы определить количество строк, которые будут возвращены оператором SELECT, введите SELECT COUNT(*) с теми же параметрами, что и предполагаемый оператор SELECT и получите значение.

Если логика вашего приложения проверяет количество строк, возвращаемых оператором SELECT и ветвей, если количество строк равно 0, рассмотрите возможность изменения вашего приложения, чтобы попытаться вернуть первую строку одной из функций db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array() или db2_fetch_row() и переходите, если функция выборки возвращает false.

Замечание:

Если вы выполняете оператор SELECT с помощью прокручиваемого курсора, db2_num_rows() возвращает количество строк, возвращаемых оператором SELECT. Однако накладные расходы, связанные с прокручиваемыми курсорами, значительно ухудшают производительность вашего приложения, поэтому, если это единственная причина, по которой вы рассматриваете возможность использования прокручиваемых курсоров, вам следует использовать курсор "forward-only" и либо вызвать SELECT COUNT(*), либо полагаться на логическое значение (bool), которое возвращает значение функций выборки для достижения эквивалентной функциональности с гораздо большей производительностью.

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

Возвращаемые значения

Возвращает количество строк, затронутых последним SQL-оператором, выданным указанным дескриптором оператора или false, если возникла ошибка.

add a note add a note

User Contributed Notes 1 note

up
-8
rmarsh221 at gmail dot com
6 years ago
$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 "Success! ".$inseq." record deleted from: libname.tablename:". Rows=".$rows;
      } else {
        echo "Row not found for delete in: ".libname.tablename";
      }
     
    }
To Top