-2

在多次尝试为我的想法找到一个独特的解决方案之后,我没有机会在这里发布这个问题,希望能找到可以启发我的人(如果适用)。

我正在开发一个具有多种方法的“功能齐全”的 PHP 类,因此我将能够做我将来愿意做的事情(也就是说,有点个人框架)。

我被困在fetchRow()课堂上的方法中。我想使用此方法从查询中获取行并且我希望此方法自动形成正确的数据结构。

现在,假设我有这样的查询:

$query = mysql_query("SELECT name, surname FROM people", $dbHandle);

我想得到这个结果(如果适用):

/*
 * var_dump example results after launching a while statement with
 * mysql_fetch_row.
 *
 * 2 fields (name,surname), 2 "master" arrays with corresponding values
 *
 */

array
 0 = array( ...names... )
 1 = array( ...surnames... )

现在,我尝试了几个原生 PHP 函数、用户定义函数等,没有目标。

也许在这些尝试之后我疯了,也许这是不可能的,或者也许我看不到一个可能的简单方法来做到这一点。

我怎样才能做到这一点?

4

1 回答 1

0

好吧,您只需执行以下操作:

$data = array();
while (false !== ($row = mysql_fetch_array($result, MYSQL_NUM)) {
   foreach($row as $key => $value) {
      if(!isset($data[$key]) {
         $data[$key] = array();
      }

      $data[$key][] = $value;
   }
}

那就是说...

  1. 只需使用 Doctrine - 完整的 ORM 或 DBAL。
  2. 不要使用ext/mysqlusePDOMysqli.
于 2012-07-16T14:02:56.570 回答