【问题标题】:How to destructure mysqli_result row如何解构 mysqli_result 行
【发布时间】:2021-03-07 11:35:31
【问题描述】:

如何从 mysqli_result 中解构一行? 此模式适用于 PDO,但我希望能够将其与 mysqli 一起使用。

<?php
$mysqli = new mysqli('', 'pdo', '123', 'pdo');
foreach ($mysqli->query("select uid, name from users") as [$uid, $name])
  print("$uid: $name\n");

// PHP Warning:  Undefined array key 0 on line 3
// PHP Warning:  Undefined array key 1 on line 3

【问题讨论】:

标签: php mysqli foreach


【解决方案1】:

您只能使用关联数组迭代mysqli_result

foreach ($mysqli->query("select uid, name from users") as ['uid' => $uid, 'name' => $name]) {
    print "$uid: $name\n";
}

不过,我建议使用fetch_all(),它会将所有内容提取到数组中,即使使用数字键也是如此。

$result = $mysqli->query("select uid, name from users")->fetch_all(MYSQLI_NUM);
foreach ($result as [$uid, $name]) {
    print "$uid: $name\n";
}

【讨论】:

  • fetch_all() 是次优的,尤其是对于较大的结果,但它似乎是唯一受支持的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多