PEAR is archived and read-only

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

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