PEAR is discontinued

This is a static archive preserving historical releases and metadata. No new packages or updates will be published. For updates to existing packages, or to publish new packages, please use Composer and Packagist.

Home » Database » MDB » Bug #1915

Undefined Offset when doing fetchRow

Details

Submitted2004-07-20 04:55 UTC
Frombrain at jbrain dot com
Assignedquipo
StatusBogus
PackageMDB
PHP Version4.3.7
OSWindows
Roadmaps(Not assigned)

Comments

[2004-07-20 04:55 UTC] brain at jbrain dot com

Description:
------------
I am using PHP 4.3.8 on WinXP and Apache

When using PEAR_MDB 1.30 MySQL DB, I can read in 1 row of data as per the tutorial. However, when I go to read in the second line of data, I get "Undefined Offset" in fetchInto method, called from fetchRow... I tracked the issue down to:

Common.php, line 3737:

if (!$this->options['autofree'] || $row != NULL) {
$this->freeResult($result);
}

I have autofree off, and the row is not null, so the result is freed. Unless I am mistaken, it would seem this code should be:

// if autofree on and returned row = NULL, free RS.
if ($this->options['autofree'] && $row == NULL) {
$this->freeResult($result);
}

Reproduce code:
---------------
Any query that returns more than 1 row of data shows the issue:

$mdb=&MDB::connect((array("phptype"=>"mysql","username"=>"ODBC","password"=>"password")));
$mdb->setDatabase("eweb");
$query="...";

$result=$mdb->query($query);

if(MDB::isError($result)) { die($result->getMessage()); }

while($data=$mdb->fetchRow($result)) {
echo $data; //replace with actual code.
}

Expected result:
----------------
Rows of data

Actual result:
--------------
Only one row