Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要帮助了解PDO的结果集吗_Php_Mysql_Pdo - Fatal编程技术网

Php 需要帮助了解PDO的结果集吗

Php 需要帮助了解PDO的结果集吗,php,mysql,pdo,Php,Mysql,Pdo,我有以下函数执行PDO查询: // removed error handling for presenting here function getRows($sql) { $stmt = $this->db->query($sql); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); return $result; } } 结果是: A

我有以下函数执行PDO查询:

  // removed error handling for presenting here
  function getRows($sql) {
      $stmt = $this->db->query($sql);
      $result = $stmt->fetchAll(PDO::FETCH_ASSOC);          
      return $result;            
    } 
  }
结果是:

Array
(
    [0] => Array
        (
            [id] => 1
            [category] => Audi
        )

    [1] => Array
        (
            [id] => 2
            [category] => BMW
        )

    [2] => Array
        (
            [id] => 3
            [category] => Chrysler
        )

)
下面的foreach代码:

如果返回以下内容,我可以做什么

Audi
BMW
Chrysler
我知道我可以只做$value['category]

但这不是我想要实现/理解的。我希望结果集不是数组的数组。

试试看

foreach($result as $key => $value ) {
  echo $value['category'].'<br/>';
}

foreach循环将数组拆分为键、值对。循环中的键是数组的索引,值是包含ID和Category的数组

要访问该类别,只需执行以下操作:

foreach($result as $key => $value ) {
  echo $value['category'].'<br/>';
}

我知道,但那不是我想要的。我希望$value是值,而不是数组。@Steven为什么需要这样做???如果某些东西确实有效,那么请更改fetch样式fetchAllPDO::fetch_样式,因为对我来说,它使事情变得简单了一点:但创建自定义的fetch_样式似乎是实现我的目标的唯一方法。我现在正在做你建议的事情。我只是想也许还有别的办法。但我现在明白了:我明白了。查看我的更新。有没有办法避免PDO返回数组数组?请尝试仅选择查询中的类别,而不是id+类别。
foreach($result as $key => $value ) {
  echo $value['category'].'<br/>';
}
foreach($result as $k)
{
    echo $k['category'];
}
foreach($result as $key => $value ) {
  echo $value['category'].'<br/>';
}