PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Database » DB » Bug #3347

ifx, numRows bug

Details

Submitted2005-02-01 14:54 UTC
Frompatafian2000 at wp dot pl
Assigneddanielc
StatusClosed
PackageDB
PHP Version5.0.3
OSLinux
Roadmaps(Not assigned)

Comments

[2005-02-01 14:54 UTC] patafian2000 at wp dot pl

Description:
------------
Database: Informix

$dsn = array(
'phptype' => 'ifx'
... etc.
);

I want to get number of record in result, but function numRows() give me Object id.

Reproduce code:
---------------
$res =& $db->query('SELECT * FROM auth');
if (DB::isError($res)) {
die($db->getMessage());
} else echo "NumRows: ".$res->numRows();

Expected result:
----------------
NumRows: 1

Actual result:
--------------
NumRows: Object id #5

[2005-02-03 07:13 UTC] patafian2000 at wp dot pl

Source:
<?php
require_once 'DB.php';

$dsn = 'ifx://xxx:xxx@swantcp/xxx';
$db =& DB::connect($dsn);

if (DB::isError($db)) {
die($db->getMessage());
}

$db->setErrorHandling(PEAR_ERROR_DIE);
$db->query('CREATE TABLE blah (a integer)');
$db->query('INSERT INTO blah (a) VALUES (5)');
$res =& $db->query('SELECT a FROM blah');
echo $res->numRows() . "\n";
$res->free() . "\n";
$db->query('DROP TABLE blah');

?>

Output:
DB Error: DB backend not capable

[2005-02-04 08:17 UTC] patafian2000 at wp dot pl

Source:
<?php
require_once 'DB.php';
$dsn = 'ifx://informix:qwer1234@swantcp/swan';
$db =& DB::connect($dsn);
if (DB::isError($db)) {
die($db->getMessage());
}
$db->setErrorHandling(PEAR_ERROR_DIE);
$db->query('CREATE TABLE blah (a integer)');
$db->query('INSERT INTO blah (a) VALUES (5)');
$db->query('INSERT INTO blah (a) VALUES (5)');
$db->query('INSERT INTO blah (a) VALUES (5)');
$res =& $db->query('SELECT a FROM blah');
echo ifx_num_rows($res->result) . "\n";
$res->fetchInto($tmp);
echo ifx_num_rows($res->result) . "\n";
$res->free() . "\n";
$db->query('DROP TABLE blah');
?>

Output:
0 1