ifx_affected_rows

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_affected_rows -- Get number of rows affected by a query

Description

int ifx_affected_rows ( int result_id )

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns the number of rows affected by a query associated with result_id.

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

例子 1. Informix affected rows

<?php
$rid
= ifx_prepare("select * from emp
                     where name like "
. $name, $connid);
if (!
$rid) {
    
/* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if (
$rowcount > 1000) {
    
printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die (
"Please restrict your query<br />\n");
}
?>

See also ifx_num_rows().


add a note add a note User Contributed Notes
akh at eurotax dot com
17-May-2002 02:43
ifx_num_rows and ifx_affected_rows are buggy or documentation is not completed. They returns unexpected results, therefore not reliable. Programmers should not trust those functions. You can simply get the num of affected rows from a select query by walking through the result of the ifx_query.
akh at eurotax dot com
30-Jan-2001 08:10
int ifx_affected_rows(int result): This function returns not the exact number of rows affected as it sounds by its name, it returns estimated sometimes it will return 1 for a table that does not contains any data!!!