PDO将默认提取模式设置为FETCH_UNIQUE

时间:2014-05-22 08:56:05

标签: php mysql pdo

我不知道为什么我无法将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?

1 个答案:

答案 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()

时明确传递它