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 » MDB2 » Bug #8747

column name mangling in MDB2_FETCHMODE_ASSOC

Details

Submitted2006-09-20 20:01 UTC
Frombudgenator at user dot sourceforge dot net
StatusBogus
PackageMDB2
PHP VersionIrrelevant
OSlinux
Roadmaps(Not assigned)

Comments

[2006-09-20 20:01 UTC] budgenator at user dot sourceforge dot net

Description:
------------
in a database table jobs that contains fields Jobs, Case, DueDate, arrivialDate, RxDate, WOnumber, ShipDate the method fetchRow(MDB2_FETCHMODE_ASSOC) mangles the associative indices to lower case and field names become case insensitive without warning or documentation in MySQL version 5.0.24

Test script:
---------------
#!/usr/bin/php
<?php
require_once 'MDB2.php'; // BSD License
$dsn = array(
'phptype' => 'mysqli',
'hostspec' => 'localhost',
'database' => 'test'
);

$mdb2 =& MDB2::factory($dsn); // create MDB2 instance
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC); // set the default fetchmode
$query = "SELECT Jobs, jobs.Case, DueDate, arrivialDate, RxDate, WOnumber, ShipDate FROM jobs WHERE Jobs > 270";
$jobs_result =& $mdb2->query($query);

if (PEAR::isError($jobs_result)) die($jobs_result->getMessage());
echo "$query\n";
$numberOfJobs = $jobs_result->numRows();
echo "returned $numberOfJobs rows\n";
$loop = 1;
while ($job = $jobs_result->fetchRow()) {
echo "while loop interation is $loop, ";
print_r($job);
echo " \n";

$loop++;
}
exit();
?>

Expected result:
----------------
+------+------+------------+--------------+--------+----------+----------+
| Jobs | Case | DueDate | arrivialDate | RxDate | WOnumber | ShipDate |
+------+------+------------+--------------+--------+----------+----------+
| 271 | 270 | 2006-05-02 | 2006-05-02 | NULL | 19730 | NULL |
| 272 | 275 | 2006-08-24 | 2006-08-21 | NULL | 15589 | NULL |
+------+------+------------+--------------+--------+----------+----------+
while loop interation is 1, Array
(
[Jobs] => 271
[Case] => 270
[DueDate] => 2006-05-02
[arrivialdate] => 2006-05-02
[rxdate] =>
[wonumber] => 19730
[shipdate] =>
)

while loop interation is 2, Array
(
[Jobs] => 272
[Case] => 275
[DueDate] => 2006-08-24
[arrivialDate] => 2006-08-21
[RxDate] =>
[WOnumber] => 15589
[ShipDate] =>
)

Actual result:
--------------
while loop interation is 1, Array
(
[jobs] => 271
[case] => 270
[duedate] => 2006-05-02
[arrivialdate] => 2006-05-02
[rxdate] =>
[wonumber] => 19730
[shipdate] =>
)

while loop interation is 2, Array
(
[jobs] => 272
[case] => 275
[duedate] => 2006-08-24
[arrivialdate] => 2006-08-21
[rxdate] =>
[wonumber] => 15589
[shipdate] =>
)