Php 在数组中保存PDO数据

Php 在数组中保存PDO数据,php,arrays,select,pdo,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

我正在做这个选择:

$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
有人能帮我解决这个问题吗

你好

试着这样做:

<?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);
?>

因为根据:

查询-执行SQL语句,将结果集作为 PDO语句对象


您应该使用
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();
之后,如果您想要一个值用逗号分隔的字符串,您可以按照@jason的建议使用内爆

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

这究竟是如何返回的
49572940
?它应该返回一个数组,而不是一个数字。如果这是从查询返回的,那么
array\u push
返回:
array([0]=>4、[1]=>9、[2]=>5、[3]=>7、[4]=>2、[5]=>9、[6]=>4、[7]=>0,)
好,但它为什么返回?:>数组(1){[0]=>string(1)“4”}这样可以避免不必要的循环—返回它应该返回的内容!