PEAR is archived and read-only

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

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] =>
)