为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕尼黑的夜晚无繁华 2021-11-05 14:33:21
我正在使用 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)
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

fetchAll 将返回一个二维数组。

  • 第一个维度是每一行。

  • 第二个维度是该行中的每个字段(键/值对)。

$resultset[0]['fieldname'] 将在结果集的第一行中返回 fieldname 的值。

您希望fetchAll返回单行,而事实正是fetch如此。

所以为了简单起见:

  • 如果您的结果集总是只返回一行,请使用fetch.

  • 如果您的结果集可能返回多行(或零行),请使用fetchAlland then for each 来遍历每一行。


查看完整回答
反对 回复 2021-11-05
  • 1 回答
  • 0 关注
  • 269 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信