如何将数据库列中的所有id都放入一个数组中?

问题描述:

How can I fetch all the values from columns (like an id column) and put them into an array?

I'm using PDO API and I tried with other code, but it's not working for me.

$STH = $DBH->query('SELECT Tid  from Playlist ');
$STH->setFetchMode(PDO::FETCH_OBJ);
$result = $STH->fetch();

while($result = mysql_fetch_array($result)) {
    $ids_array[] = $result['Tid'];
}

如何从列中获取所有值(如id列)并将它们放入数组中? p>

我正在使用PDO API并尝试使用其他代码,但它对我不起作用。 p>

  $ STH = $ DBH-&gt  ; query('来自播放列表的SELECT Tid'); 
 $ STH-> setFetchMode(PDO :: FETCH_OBJ); 
 $ result = $ STH-> fetch(); 
 
而($ result = mysql_fetch_array(  $ result)){
 $ ids_array [] = $ result ['Tid']; 
} 
  code>  pre> 
  div>

You are mixing mysql_* and PDO, which is obviously not going to work.

Just fetchAll() your results and then just merge all rows into one array by simply looping through all rows with array_map() and returning the id, e.g.

$stmt = $DBH->query("SELECT Tid  from Playlist");
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
$ids = array_map(function($v){
    return $v->Tid;
}, $result);

print_r($ids);

You can directly return an id array by specifying the PDO::FETCH_COLUMN.

$stmt = $DBH->query("SELECT Tid from Playlist");
$ids_array = $stmt->fetchAll(PDO::FETCH_COLUMN);