<分区>
我正在使用 PDOStatement
查询数据库。每当我得到一个返回的行时,我希望将它提取到一个数组中,以 $row[0]
作为键,将该行中的后续元素作为值。
当然,我可以编写 foreach
循环和 if
条件的组合来完成这项工作,如下所示:
private static function GetMySQLResult($dbname, $sqlString) {
$dbh = self::ConstructPDOObject($dbname);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result=array();
foreach ($dbh->query($sqlString) as $row) {
// the simplest case for 2 columns,
// should add more to handle more columns
$result[$row[0]][]=$row[1];
}
return $result;
}
但我正在寻找现有的方法;有这样的方法已经存在吗?
为什么重新打开问题。
这里问的很明显是PDO::FETCH_GROUP|PDO::FETCH_ASSOC的组合。 PDO::FETCH_KEY_PAIR 仅适用于 2 列结果。但是这里的示例是一个 2 列结果,只是为了简化问题中的代码,而不是适用于所有情况。