如何将数据库列中的所有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);