我正在尝试将查询结果提取到我的数据库中。当结果集只有一行时,我这样做没有问题,但当结果集是多行时,我只得到第一行。
这是我的数据库:
-----keys-------------------
| id | key_nbr | date |
----------------------------
| 42 | abc123 | xxxx |
| 49 | 789xyz | wxyz |
----------------------------
我的功能:
function get_key_info($mysqli) {
if (isset($_SESSION['user_id'], $_SESSION['username'], $_SESSION['login_string'])) {
$user_id = $_SESSION['user_id'];
if ($stmt = $mysqli->query("SELECT id, key_nbr, date FROM keys WHERE id=$user_id")){
$row = $stmt->fetch_array(MYSQLI_ASSOC);
return $row;
}
}
return null;
}
执行 print_r($row);
时的输出仅为第一行:
Array ( [id] => 42 [key_nbr] => abc123 [date] => xxxx)
如何让它打印所有行?
最佳答案
在获取数据之前,您必须检查总行数,如果不为零,则执行循环并获取所有记录。
function get_key_info($mysqli) {
if (isset($_SESSION['user_id'], $_SESSION['username'], $_SESSION['login_string'])) {
$user_id = $_SESSION['user_id'];
if ($stmt = $mysqli->query("SELECT id, key_nbr, date FROM keys WHERE id=$user_id")){
if($stmt->num_rows != 0) {
$row = array();
while($r = $stmt->fetch_array(MYSQLI_ASSOC)) {
$row[] = $r;
}
return $row;
}
}
}
return null;
}
关于php - 将 MySQL 结果保存在二维数组中 - php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812504/