php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #1944 I can't get right result number when using IFX_AFFECTED_ROWS()
Submitted: 1999-08-02 04:31 UTC Modified: 1999-08-02 05:33 UTC
From: musica98 at chollian dot net Assigned:
Status: Closed Package: Other
PHP Version: 3.0.11 OS: RedHat6.0
Private report: No CVE-ID: None
 [1999-08-02 04:31 UTC] musica98 at chollian dot net
* I can't get right result number when using IFX_AFFECTED_ROWS() ! *

Following is my configure and source code
-----------------------------------------
DB name    : test
TABLE name : test
DB user    : informix (pass:*****)

Schema file
---
{ TABLE "informix".test row size = 119 number of columns = 4 index size = 12 }
create table "informix".test 
  (
    id serial not null ,
    name nchar(8) not null ,
    email nvarchar(50,50),
    comment text,
    primary key (id)  constraint "informix".priid
  ) extent size 16 next size 16 lock mode row;
revoke all on "informix".test from "public";
---

PHP Source Code
---
<?
$conn_id = ifx_connect("test@linux","informix","****");
ifx_textasvarchar(1);
$query = "select * from test";
$res_id = ifx_query($query,$conn_id);
$rowcount = ifx_affected_rows($res_id);
echo($rowcount);
?>
---
--------------------------------------------

I'm insert 5 rows into test table.
But $rowcount's value is 10

I'm insert 13 rows into test table.
But $rowcount's value is 10

Alaways $rowcount's value is 10

I can't find my mistake.
How can I solve problems.


Thanks.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1999-08-02 05:33 UTC] danny at cvs dot php dot net
As stated in the manual, ifx_affected_rows() can only give
an ESTIMATE for SELECT type queries.
The number returned by ifx_affected_rows()is only exact for
INSERT/UPDATE type queries. 
This is a limitation of the Informix database. There are no
work-arounds. 
You can read up on this in the Informix ESQL/C Programmer's 
Manual, SQLCA structure, fields sqlerrd[0] and sqlerrd[2].

If you really need this number, you can excute a "select
count(*)", but don't complain about performance problems
if you do.

Danny.
---
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 16:01:28 2024 UTC