将PDO数据保存在数组中

时间:2014-04-07 21:07:45

标签: php arrays select pdo

我正在做这个选择:

$result = $dbh->query("SELECT clicks FROM table WHERE click_date = '".$current_date."'");
    $result->execute();
    $array = array();
    while ($user = $result->fetch(PDO::FETCH_ASSOC)) {
        array_push($array, $user['clicks'].",");
    }

但是这会回来:

49572940

但它应该是:

4,9,5,7,2,9,4,0

有人可以帮我解决这个问题吗?

问候!

2 个答案:

答案 0 :(得分:3)

尝试这种方式:

<?php
$sql = "SELECT clicks FROM table WHERE click_date = '$current_date'";
foreach ($dbh->query($sql) as $row) {
 $array[] = $row['clicks'];
}
//now echo and use implode
echo implode(", ", $array);
?>

因为根据PHP Manual - PDO::query

  

PDO :: query - 执行SQL语句,将结果集返回为   PDOStatement对象

答案 1 :(得分:0)

您应该使用fetchAll来获取所有值,如果您想执行预准备语句,则必须使用prepare而不是query

$sth = $dbh->prepare("SELECT clicks FROM table WHERE click_date = :current_date");
$sth->bindParam(':current_date', $current_date);
$sth->execute();
$result = $sth->fetchAll();

之后如果你想要一个用逗号分隔值的字符串,你可以使用implode作为@jason建议。

$str = implode(",", $result );