ID: 47832 User updated by: r dot borschel at gmx dot net Reported By: r dot borschel at gmx dot net -Status: Feedback +Status: Open Bug Type: PDO related Operating System: OS X 10.5.6 PHP Version: 5.3CVS-2009-03-29 (snap) Assigned To: mysql New Comment:
$ sapi/cli/php --ri pdo_mysql pdo_mysql PDO Driver for MySQL => enabled Client API version => 5.0.38 Thats a bit strange, isnt it? My configure looks like this: './configure' \ ... '--with-mysql=/usr/local/mysql-5.1.32-osx10.5-x86' \ '--with-pdo-mysql=/usr/local/mysql-5.1.32-osx10.5-x86' \ ... That version mismatch may be the problem? Am I doing something obviously wrong? Thanks for your help. Previous Comments: ------------------------------------------------------------------------ [2009-03-30 11:44:41] johan...@php.net Which MySQL server and client library versions are you using? - I tested using 5.1.31 worked for me: $ sapi/cli/php --ri pdo_mysql pdo_mysql PDO Driver for MySQL => enabled Client API version => 5.1.31 $ sapi/cli/php bug47832.php array(4) { ["c0__id"]=> string(1) "1" ["c0__status"]=> string(9) "developer" ["c0__username"]=> string(6) "romanb" ["c0__name"]=> string(5) "Roman" } ------------------------------------------------------------------------ [2009-03-29 20:19:46] r dot borschel at gmx dot net The INSERT statement should of course read: INSERT INTO `testdb`.`cms_users` ( `id` , `status` , `username` , `name` ) VALUES (NULL , 'developer', 'romanb', 'Roman'); ------------------------------------------------------------------------ [2009-03-29 20:17:04] r dot borschel at gmx dot net Description: ------------ Associative array indices are getting garbled when usind pdo_mysql when mysql & pdo_mysql were compiled against libmysql. Compiling against mysqlnd fixes the issue. Reproduce code: --------------- # # SQL # CREATE TABLE IF NOT EXISTS `cms_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `status` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; INSERT INTO `doctrinetests`.`cms_users` ( `id` , `status` , `username` , `name` ) VALUES (NULL , 'developer', 'romanb', 'Roman'); # # PHP # $pdo = new PDO("mysql:host=localhost;dbname=testdb", "xxx", "xxx"); $stmt = $pdo->prepare("SELECT c0.id AS c0__id, c0.status AS c0__status, c0.username AS c0__username, c0.name AS c0__name FROM cms_users c0"); $stmt->execute(); while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) { var_dump($data); } Expected result: ---------------- array(6) { ["c0__id"]=> string(2) "16" ["c0__status"]=> string(9) "developer" ["c0__username"]=> string(6) "romanb" ["c0__name"]=> string(5) "Roman" } Actual result: -------------- array(6) { ["c0__id"]=> string(2) "16" ["status"]=> string(9) "developer" ["c0"]=> string(6) "romanb" ["cms_users"]=> string(5) "Roman" } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47832&edit=1