Php 从MySQL PDO中的单个列获取所有值

Php 从MySQL PDO中的单个列获取所有值,php,mysql,pdo,Php,Mysql,Pdo,我在user\u id列(1,47,6)中有值。如何获取所有值 我使用了以下代码 $array_data = array($project_id); $query = "SELECT * FROM p INNER JOIN pl ON p.pl_id = pl.pl_id INNER JOIN user ON p.user_id = user.user_id WHERE p.p_id=?"; $stmt = $conn->prepar

我在
user\u id
列(1,47,6)中有值。如何获取所有值

我使用了以下代码

$array_data = array($project_id);               
$query = "SELECT * FROM p
    INNER JOIN pl ON p.pl_id = pl.pl_id
    INNER JOIN user ON p.user_id = user.user_id WHERE 
    p.p_id=?";
$stmt = $conn->prepare($query);
$stmt->execute($array_data);
$result_data = $stmt->fetchAll( PDO::FETCH_ASSOC );
$ids = array();         
foreach($result_data as $rows) {

    $ids[] = $rows['user_id'];                      

}
$id = implode(',',$ids);
echo $id;

$id
仅返回第一个值(1)。我需要所有3个值。请提前帮助和感谢。

在循环之前声明
$ids
数组,并在数组之后回显内爆内容

$array_data = array($project_id);               
$query = "select `user_id` from p
          inner join pl on p.pl_id = pl.pl_id
          inner join user on p.user_id = user.user_id where 
          p.p_id=?";


$stmt = $conn->prepare($query);
$stmt->execute($array_data);
$result_data = $stmt->fetchAll( PDO::FETCH_ASSOC );

$ids = array();  /* declare variable before loop */

foreach($result_data as $rows) {

    $ids[] = $rows['user_id'];                      

}

$id = implode(',',$ids); /* output after loop */

初始化
$ids=array()在循环外,对它的每一次迭代都要声明,这里的想法是:在循环外初始化,在循环内推,然后在循环外内爆。这些表只是被称为
p
pl
?另一种方法是对ID进行分组,然后
->fetchColumn
它,然后explode
$id
总是被覆盖,你应该把它放在循环的一边,按照建议执行,并在内爆语句echo$id之后添加这一行;仍然获得一个值(1)