【发布时间】:2010-11-26 03:09:39
【问题描述】:
我正在使用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 列结果,仅用于简化问题中的代码,并非适用于所有情况。
【问题讨论】:
-
您的代码实际上对非唯一键上的行进行分组,这也是可能答案的要求吗?
-
我要求重开问题,因为测试了很多解决方案,这里问的显然是
PDO::FETCH_GROUP|PDO::FETCH_ASSOC的组合。 PDO::FETCH_KEY_PAIR 仅适用于 2 列结果。但是这里的示例是一个 2 列的结果,只是为了简化问题中的代码,而不是针对所有情况。
标签: php pdostatement