php - 将 MySQL 结果保存在二维数组中 - php

标签 php mysql

我正在尝试将查询结果提取到我的数据库中。当结果集只有一行时,我这样做没有问题,但当结果集是多行时,我只得到第一行。

这是我的数据库:

-----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/

相关文章:

mysql - 需要帮助让我的 mysql 查询更快

php - 具有多个计数的 MySQL 数据透视表

php - Gmail API PHP - 请求实体太大错误 413

php - 将 ô 插入 mysql 数据库是 Rhône 结果的一部分

mysql - 这个错误是什么意思?

php - 创建下一个按钮以循环遍历 mysql 表

PHP乱序执行

html - 显示为问号的字符

php - 重载 symfony2 供应商类以将 curl verify_peer 选项设置为 false

php - 在新订单管理 Woocommerce 电子邮件中添加自定义数据的钩子(Hook)