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的多种查询方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。