查询数据
接下来利用MySQLi扩展,对所有的数据进行查询操作。查询student表中所有的记录,具体代码如下所示。
1 // 查询数据的SQL语句
2 $query = 'SELECT * FROM `student`';
3 // 执行删除操作
4 $result = mysqli_query($link, $query);
5 if (!$result) {
6 exit(mysqli_error($link));
7 }
8 // 处理结果集
9 $list = [];
10 while ($row = mysqli_fetch_assoc($result)) {
11 $list[] = $row;
12 }
13 // 释放结果集资源
14 mysqli_free_result($result);
15 // 关闭连接
16 mysqli_close($link);
在上述代码中,通过mysqli_fetch_assoc()函数获取结果集中的每一行,与while循环语句配合使用,可以将结果集中的数据全部取出来保存到$list变量中,直到该函数返回false,跳出while循环。
将查询出来的结果在页面中展示,具体代码如下。
1 echo '<table><tr><th>id</th><th>姓名</th><th>年龄</th></tr>';
2 foreach ($lists as $val) {
3 echo '<tr><td>{$val['id']}</td><td>{$val['name']}</td>
4 <td>{$val['age']}</td></tr>';
5 }
6 echo '<table>';
在上述代码中,第2~5行通过foreach循环,将$lists中的内容输出,显示在页面中的元素包括id、姓名和年龄。通过浏览器访问测试,查询结果如图1所示。
图1 查询结果
另外,当需要一次查询一行记录时,还可以使用mysqli_fetch_row()函数或mysqli_fetch_array()函数来实现,它们与mysqli_fetch_assoc()函数的用法类似。
除了上述的方式外,当需要一次查询出所有的记录时,可以通过mysqli_fetch_all()函数来实现,示例代码如下。
1 // 一次查询所有记录
2 $data = mysqli_fetch_all($result, MYSQL_ASSOC);
3 // 输出查询结果
4 var_dump($data);
按照上述代码修改完成后,$data中存入了一个包含所有行的二维数组,其中每一行记录都是一个数字。使用var_dump()函数可以查看该数组的结构。