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”}这样可以避免不必要的循环—返回它应该返回的内容!