问题描述
如何从 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";
}