2015-02-24 71 views
0

NULL值I有具有以下结构的抓取在PDO查询

CREATE TABLE IF NOT EXISTS `test` (
    `id` varchar(255) NOT NULL DEFAULT '', 
    `image` varchar(255) DEFAULT NULL, 
    `price` decimal(10,2) unsigned DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

当不提供的值,NULL被用作默认imageprice一个MySQL表。

+---------+-------+-------+ 
| id  | image | price | 
+---------+-------+-------+ 
| lorem | ipsum | NULL | 
| dolor | NULL | 10.20 | 
+---------+-------+-------+ 

我的目标是通过PDO查询获取NULL值。

$connection->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING); 
$query = $connection->query('SELECT * FROM test'); 
$q = $query->fetchAll(PDO::FETCH_NUM); 

但是当我运行的代码片段,NULL值转换为空字符串。

Array 
(
    [0] => Array 
     (
      [0] => dolor 
      [1] => 
      [2] => 10.20 
     ) 

    [1] => Array 
     (
      [0] => lorem 
      [1] => ipsum 
      [2] => 
     ) 
) 

我错过了什么?

回答

0

尝试使用var_dump而不是print_r来查看值是否为NULL而不是零长度字符串。