PDO'fetchAll'返回带有额外数组的行

我正在使用 PDO 从数据库中提取一些数据,并且数据返回一个额外的数组,我无法理解它来自哪里。


我可以选择用于call_user_func_array“退出”一个数组,我尝试过,但它减慢了我的工作速度。


我只是更喜欢我的代码按照我的预期工作,而不是开始弄乱它并使它“脏”。除此之外,我找不到解决方案。


这是我select用来提取数据的方法:


public function select($whattoselect, $fromwhere, $condition){

      $stmt = $this->pdo->prepare("SELECT {$whattoselect} FROM {$fromwhere} {$condition}");

      $stmt->execute();


      $this->row = $stmt->fetchAll(PDO::FETCH_ASSOC);

      return $this;

}

这就是我打印结果的方式(仅用于故障排除):


echo '<pre>';

print_r($check->row());

echo '</pre>';

这是我得到的输出:


array(

 0 = array(

  key1 => value1, 

  key2 => value2

 )

)

这就是我想要得到的输出:


array(

 key1 => value1, 

 key2 => value2

)


慕尼黑的夜晚无繁华
浏览 270回答 1
1回答

猛跑小猪

fetchAll&nbsp;将返回一个二维数组。第一个维度是每一行。第二个维度是该行中的每个字段(键/值对)。$resultset[0]['fieldname']&nbsp;将在结果集的第一行中返回 fieldname 的值。您希望fetchAll返回单行,而事实正是fetch如此。所以为了简单起见:如果您的结果集总是只返回一行,请使用fetch.如果您的结果集可能返回多行(或零行),请使用fetchAlland then for each 来遍历每一行。
打开App,查看更多内容
随时随地看视频慕课网APP