I am using PDOStatement
to query the database. Whenever I get a returned row, I want it to be fetched into an array, with the $row[0]
as the key, and the subsequent elements in the row as the values.
I can, of course, write a combination of foreach
loops and if
conditionals to do the job, such as the below:
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;
}
but I am looking for an existing method; is there such a method already exist?
Why reopened the question.
What is asked here is clearly the combination of PDO::FETCH_GROUP|PDO::FETCH_ASSOC. PDO::FETCH_KEY_PAIR only works with a 2 column result. But here the example is a 2 column result only to simplify the code in the question, not for all situations.