首页 理论教育 用到SQL语句查询表中数据的简单列表及查询方法

用到SQL语句查询表中数据的简单列表及查询方法

时间:2023-10-29 理论教育 版权反馈
【摘要】:图5-41最简单的数据列表程序结果通过SQL的select语句查询表中数据。以上几个范例,用到了三种不同的参数绑定方法,用到了一种结果绑定的方法,用到了两种循环方法、两种执行查询的方法。

用到SQL语句查询表中数据的简单列表及查询方法

1.最简单的列表程序(select1.php)

以下是一个最简单的PHP数据列表程序。

程序列表结果如图5-41所示。

图5-41 最简单的数据列表程序结果

通过SQL的select语句(select * from 表名)查询表中数据。

通过foreach语句循环表中的内容。每个数据项之前用空格隔开,每行数据内容用“
”换行。按数据表中项的位置顺序读出了$row[0]、$row[1]、$row[2]三个数据项。

如果你希望按数据项的列名来读出数项就可以把:

改为:

2.排序(select2.php)

在select语句的后面加一句:

order by 项目名称

可以轻松地实现排序。如果实现倒序排序,则可以加个desc的关键字。下面举几个排序的例子加以说明。

(1)按id倒序排序

(2)按name拼音排序

(3)先按address音序倒排序,再按name音序倒排序。两条排序条件之间用逗号隔开。

3.条件查询

修改select查询条件,可以列出符合条件的部分条目内容。以下举例说明。

(1)显示id=2的记录

(2)列出name中“李”字打头的记录

(3) 列出name中含有“伟”字的记录

(4) 列出name的第二个字是“伟”字的记录

(5) 列出address是“北京”的,且name中含有“伟”字的记录

(6) 列出id大于3且id小于等于5的记录

(7)列出前面4条记录

4.将列表排入表格

上面只是简单地把要列的内容列出来。如果要将列表内容输出到表格中,可以把程序改成这样:

打印了一个表头。

打印了表格结束。

循环打印了表格的每一行,每一行由<tr>开始由</tr>结束,中间是一个个<td></td>数据项。每个数据项中填入从数据库里读出的数据内容,如图5-42所示。(www.xing528.com)

图5-42 表格显示列表

如果你觉得这个表格太丑,可以用CSS装饰它,也可以用Bootstrap把它设计得美观一些。

5.统计符合条件的条目数

统计就是查询后计数的过程,所以查询语句与前面没什么不同,只是用了一条计数语句来解决这个问题。

以下是全部程序:

6. 错误判断及SQL防注入预处理

(1)加入防注入预处理

这个程序列出了所有name="李伟"条目,$stmt->rowCount()可以计算出查询出来的条目数。

加入了try……catch错误判断,让程序更完善。通过:

参数绑定实现了防SQL注入的功能。

(2)使用fetch

Fetch是PHP PDO获取结果集的一种方法。

$row取走$stmt->fetch()得到的第一行数据,再执行一次$stmt-> fetch()则以取走一行数据(原来的第二行),直到全部取空为止。

以上这个例子就是用fetch循环输出查询结果集,设置结果集为关联数组的例子。

fetch中的参数控制结果集的返回方式,可选方式如下:

PDO::FETCH_ASSOC 关联数组形式。

输出例句:

PDO::FETCH_NUM 数字索引数组形式。

输出例句:

PDO::FETCH_BOTH 关联数组和数字索引数组两者都有的形式。

PDO::FETCH_BOTH缺省的时候,即fetch()相当于:PDO::FETCH_BOTH。为了让学生易于学习,以后的例子都采用缺省的形式,当然正式编程的时候还是应该有所区分,否则会占用大量内存。

此外还有PDO::FETCH_OBJ、PDO::FETCH_BOUND、PDO::FETCH_LAZY等形式。

PDOStatement对象有fetch()、fetchAll()、fetchColumn()三种方法。

fetchAll():获取PDOstatement对象中的所有行数据,参数有FETCH_BOTH、FETCH_NUM、FETCH_ASSOC;

fetch():获取查询结果中一行记录并可以通过参数的不同、显示的方式不同,可用循环实现显示所有行记录;

fetchColumn():获得下一行的一列,可以通过循环获取多行的单一的列。

(3)绑定结果的范例

这里用到的SQL根据姓名进行了排序。同时说明了结果绑定的方法与query、foreach配合的方法。

(4)绑定参数、输出表格

这个范例输出结果为一个表格。参数绑定与前几例用了不同的方法。

以上几个范例,用到了三种不同的参数绑定方法,用到了一种结果绑定的方法,用到了两种循环方法、两种执行查询的方法。同时,还用到了SQL的多种查询方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈