如何将MySQL查询的所有行数据存入PHP一维数组?
将MySQL查询结果存入一维数组的实现方法
先看你给出的传统逐行获取数据的代码:
$con = mysqli_connect(YOURLS_DB_HOST,YOURLS_DB_USER,YOURLS_DB_PASS); mysqli_select_db($con,YOURLS_DB_NAME); $users=mysqli_query($con,"SELECT * FROM users"); while($user=mysqli_fetch_array($users)) { $user['email']; $user['pass']; }
要把所有行数据存入一个一维数组其实很简单,只需要提前初始化一个空数组,然后在循环里把每一行的数据追加进去就行。修改后的代码如下:
$con = mysqli_connect(YOURLS_DB_HOST,YOURLS_DB_USER,YOURLS_DB_PASS); mysqli_select_db($con,YOURLS_DB_NAME); $users=mysqli_query($con,"SELECT * FROM users"); // 初始化空数组,用来存储所有用户数据 $all_users = []; while($user=mysqli_fetch_array($users)) { // 将当前行数据追加到一维数组中 $all_users[] = $user; } // 现在$all_users就是包含所有查询结果的一维数组了 // 示例访问方式:获取第一行用户的邮箱 -> $all_users[0]['email'] // 也可以遍历数组处理每一条数据 foreach($all_users as $user_info) { echo "邮箱:" . $user_info['email'] . "<br>"; echo "密码:" . $user_info['pass'] . "<br><hr>"; } // 记得关闭数据库连接 mysqli_close($con);
额外给你两个实用小建议:
- 如果你只需要关联数组(仅以字段名为键,无数字索引),可以把
mysqli_fetch_array()替换成mysqli_fetch_assoc(),返回的数组结构会更简洁。 - 实际开发中建议加上错误处理,比如检查数据库连接是否成功、查询是否执行成功,避免出现意外报错。
内容的提问来源于stack exchange,提问作者Dhrubajyoti Sen
相关产品推荐
相关产品推荐

