PHP PDO方法获取匹配元素的简单列表

PHP PDO方法获取匹配元素的简单列表,php,mysql,pdo,Php,Mysql,Pdo,使用PHP PDO获取元素列表最简单的方法是什么?有太多的fetch和fetch参数,我不确定哪一个是正确的 表用户 | id | username | age | ----------------------- | 5 | Joey | 33 | | 6 | Terry | 44 | | 7 | Billy | 44 | 质疑 如果我使用fetchColumn,我似乎只得到一个结果。如果我将fetchAll与assoc_数组一起使用,那么如果可以避免的话,我不

使用PHP PDO获取元素列表最简单的方法是什么?有太多的fetch和fetch参数,我不确定哪一个是正确的

表用户

| id | username | age |
-----------------------
| 5  |  Joey    | 33  |
| 6  | Terry    | 44  |
| 7  | Billy    | 44  |
质疑


如果我使用fetchColumn,我似乎只得到一个结果。如果我将fetchAll与assoc_数组一起使用,那么如果可以避免的话,我不想迭代数组

假设$db是\PDO的实例

$q = "SELECT username FROM Users WHERE age = :age";
$stmt = $db->prepare($q);
$stmt->bindParam(':age', 44, PDO::PARAM_INT);
$stmt->execute();

$objects = array();
while ($object = $stmt->fetch(PDO::FETCH_OBJ)) {
    $objects[] = $object;
}

echo json_encode($objects);
我最终使用了

$res = $stmt->fetchAll(PDO::FETCH_COLUMN);
return implode(",", $res);

试试这里@danjam并不关心性能,但是谢谢。我不得不承认性能通常是我选择方法的一个因素。对于较小的结果集,我使用fetchAll;对于较大的结果集,我使用while循环中的fetch。除此之外,我认为这是个人的偏好:)所以真的没有简单的fetch语句只返回所有匹配的列吗?我认为这是MySQL应该做的最基本的事情。你可以用同样的方法取所有的。MySQL与PDO无关(PDO=PHP数据对象)
$res = $stmt->fetchAll(PDO::FETCH_COLUMN);
return implode(",", $res);