Re: affected_rows always > 0
| From: | Ingo Klein | Date: | Wed, 18 Oct 2000 16:28:24 +0000 |
| Subject: | Re: affected_rows always > 0 | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-3740@lists.php.net to get a copy of this message | ||
Salute !
The Manual say:
ifx_num_rows
ifx_num_rows -- Count the rows already fetched a query
Description
int ifx_num_rows(int result_id);
Gives the number of rows fetched so far for a query with result_id after a
ifx_query() or ifx_do() query.
^^^^^^^^^^^^^^^^^^^^^^^^
and:
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.
See also: ifx_num_rows()
Example 1. Informix affected rows
1
2 $rid = ifx_prepare ("select * from emp
3 where name like " . $name, $connid);
4 if (! $rid) {
5 ... error ...
6 }
7 $rowcount = ifx_affected_rows ($rid);
8 if ($rowcount > 1000) {
9 printf ("Too many rows in result set (%d)\n<br>", $rowcount);
10 die ("Please restrict your query<br>\n");
11 }
12
Why not ifx_num_rows(int result_id) or without ifx_do($rs) ?
Bye, Ingo.
------------------------ Re from:
Ingo Klein; Bei der Kraehenhuette 37; 04279 Leipzig
home: http://www.vdi-mitglieder.de/klein_ingo
voc: 0341/338 4556; mailto:klein.ingo@vdi.de