我有一个具有以下结构的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;
如果未提供值,NULL
和image
默认使用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] =>
)
)
我错过了什么?
答案 0 :(得分:0)
尝试使用var_dump而不是print_r来查看值是否为NULL而不是零长度字符串。