在PDO查询中获取NULL值

时间:2015-02-24 13:48:47

标签: pdo null fetch

我有一个具有以下结构的MySQL表

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;

如果未提供值,NULLimage默认使用price

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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

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