Problem with PDO Mysql and FETCH::ASSOC

From: Date: Thu, 19 Mar 2009 23:13:15 +0000
Subject: Problem with PDO Mysql and FETCH::ASSOC
Groups: php.db 
Request: Send a blank email to php-db+get-46086@lists.php.net to get a copy of this message
Hello, I am using the following code to perform queries on a MySQL database: $dbh = new PDO($GLOBALS['database'],$GLOBALS['username'],$GLOBALS['password']); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $query = $dbh->prepare("SELECT * FROM log"); $query->execute(); $results = $query->fetchALL(PDO::FETCH_ASSOC); $dbh = null; If I perform this query in MySQL, I get: mysql> select * from log; +---------+------------+-------------------------------+----------+----------------+----------------------------+
| type    | date       | client_id                     | model_id | request        | message                    |
+---------+------------+-------------------------------+----------+----------------+----------------------------+
| message | 1.2375e+09 | domain.18052                  |          | client_start   | started client             |
However, if I perform this query with the PHP code above, I get: Array ( [type] => error [date] => 1.2375e+09 [log] => [distributed] => client_start [def] => started client) ) which is clearly wrong. 'distributed' is actually the name of the database, so I don't really know what it is doing as a key in the above result. If I use PDO::FETCH_BOTH instead of PDO::FETCH_ASSOC, I get Array ( [type] => message [0] => message [date] => 1.2375e+09 [1] => 1.2375e+09 [log] => [2] => domain.18052 [3] => [distributed] => client_start [4] => client_start [def] => started client [5] => started client ) which *does* contain the correct values with the numerical keys. Before using MySQL, I was using SQLite, and this problem did not occur. The description of the table is: mysql> describe log; +-----------+----------+------+-----+---------+-------+
| Field     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| type      | char(10) | YES  |     | NULL    |       |
| date      | float    | YES  |     | NULL    |       |
| client_id | char(50) | YES  |     | NULL    |       |
| model_id  | char(50) | YES  |     | NULL    |       |
| request   | char(20) | YES  |     | NULL    |       |
| message   | char(50) | YES  |     | NULL    |       |
+-----------+----------+------+-----+---------+-------+ 6 rows in set (0.00 sec) Does anyone have any ideas as to what I might be doing wrong? Thanks for any help! Thomas

« previous php.db (#46086) next »