如何解构 mysqli_result 行

问题描述

如何从 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

解决方法

您只能使用关联数组迭代 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";
}