我不知道为什么我无法将PDO的默认提取模式设置为FETCH_UNIQUE
以下是我创建PDO对象并发出请求的方法:
$PDO = new PDO($mysql,$login,$password);
$PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_UNIQUE);
$prep = $PDO->prepare($selectQuery);
$prep->execute($params);
则...
这不起作用(它没有考虑以前的setAttribute()):
$result = $prep->fetchAll();
这是有效的,但我不想写" PDO :: FETH_UNIQUE"对于每个请求:
$result = $prep->fetchAll(PDO::FETCH_UNIQUE);
我做错了什么? 我的目标是使结果数组被所选表的主键索引,就像在这个线程上一样:Is there a way to fetch associative array grouped by the values of a specified column with PDO?
答案 0 :(得分:2)
$PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_UNIQUE);
这不起作用,因为PDO::FETCH_UNIQUE
不是PDO::ATTR_DEFAULT_FETCH_MODE
的有效常量。请参阅此处有效的获取模式常量http://www.php.net/manual/en/pdostatement.fetch.php
似乎无法使用PDO:FETCH_UNIQUE
启用$PDO->setAttribute()
。您应该在调用fetchAll()
。