第1篇 新手入门 2
第1章 初识PHP环境搭建 2
1.1 PHP开发环境的搭建 3
1.1.1在Windows下搭建PHP开发环境 3
1.1.2在Linux下搭建PHP开发环境 3
1.2 Apache服务器的安装和配置 3
1.2.1在Windows下安装Apache服务器 3
1.2.2在Linux下安装Apache服务器 6
1.3 PHP的安装和配置 7
1.3.1在Windows下安装PHP 7
1.3.2在Linux下安装PHP 8
1.4应用组合包快速搭建PHP环境 9
1.5第一个PHP程序 11
1.5.1使用Adobe Dreamweaver编写源程序 12
1.5.2发布和运行PHP程序 13
1.6 环境安装常见问题 13
1.6.1 Apache安装常见问题 13
1.6.2 PHP安装常见问题 13
1.6.3 MySQL安装常见问题 14
1.7实战 15
1.8小结 17
1.9学习成果检验 17
第2章 PHP语言基础 18
2.1 PHP语法基础 19
2.1.1 PHP标记风格 19
2.1.2 PHP注释应用 19
2.2 PHP的数据类型 20
2.2.1标量数据类型 20
2.2.2复合数据类型 24
2.2.3特殊数据类型 25
2.2.4转换数据类型 26
2.2.5检测数据类型 27
2.3 PHP的常量应用 27
2.3.1声明和使用常量 28
2.3.2预定义常量 28
2.4 PHP的变量应用 29
2.4.1变量声明及使用 30
2.4.2变量作用域 31
2.4.3可变变量 33
2.4.4预定义变量 33
2.4.5变量的生存周期 34
2.5 PHP运算符 34
2.5.1算术运算符 34
2.5.2字符串运算符 35
2.5.3赋值运算符 36
2.5.4递增或递减运算符 36
2.5.5位运算符 37
2.5.6逻辑运算符 38
2.5.7比较运算符 39
2.5.8条件运算符 40
2.5.9运算符的优先顺序和结合规则 40
2.6 PHP函数 41
2.6.1定义和调用函数 41
2.6.2在函数间传递参数 41
2.6.3从函数中返回值 43
2.6.4变量函数 43
2.6.5对函数的引用 44
2.6.6取消引用 44
2.7输出语句 45
2.7.1应用print语句输出字符 45
2.7.2应用echo语句输出字符 46
2.7.3应用printf语句格式化输出字符 47
2.7.4应用sprintf语句格式化输出字符 48
2.8引用文件 49
2.8.1应用include语句引用文件 49
2.8.2应用require语句引用文件 49
2.8.3应用include_once语句引用文件 50
2.8.4应用require_once语句引用文件 51
2.8.5 include语句和require语句的区别 51
2.8.6 include_once语句和require_once语句的区别 52
2.9实战 52
2.9.1判断闰年的方法 52
2.9.2通过自定义函数防止新闻主题信息出现中文乱码 53
2.9.3应用include语句构建在线音乐网站主页 54
2.9.4随机组合生日祝福语 56
2.9.5加法计算器 56
2.10小结 57
2.11学习成果检验 57
第3章 PHP流程控制语句 58
3.1控制结构 59
3.2条件控制语句 60
3.2.1 if条件控制语句 60
3.2.2 switch…case分支控制语句 63
3.3循环控制语句 64
3.3.1 while循环语句 64
3.3.2 do…while循环语句 65
3.3.3 for循环语句 66
3.3.4 foreach循环 67
3.4 跳转控制语句 68
3.4.1使用break语句跳出循环 68
3.4.2使用continue语句跳出循环 70
3.5实战 71
3.5.1执行指定次数的循环 71
3.5.2跳过数据输出中指定的记录 72
3.5.3控制页面中数据的输出数量 73
3.5.4动态改变页面中单元格的背景颜色 73
3.5.5使用for循环动态创建表格 74
3.6小结 74
3.7学习成果检验 75
第4章 字符串操作与正则表达式 76
4.1了解字符串 77
4.2单引号与双引号 77
4.3定界符 78
4.4连接字符串 80
4.5转义、还原字符串 80
4.5.1手动转义、还原字符串 80
4.5.2自动转义、还原字符串 81
4.6获取字符串长度 82
4.7截取字符串 84
4.8比较字符串 85
4.8.1按字节比较 85
4.8.2按自然排序法比较 86
4.8.3指定从源字符串的位置比较 87
4.9检索字符串 87
4.9.1使用strstr()函数检索指定的关键字 87
4.9.2应用substr_count()函数检索子串出现的次数 88
4.10替换字符串 89
4.11什么是正则表达式 91
4.12正则表达式语法规则 91
4.12.1行定位符(^和$) 91
4.12.2字符类([]) 92
4.12.3选择字符(|) 92
4.12.4连字符(-) 92
4.12.5排除字符([^]) 93
4.12.6限定符(?*+{n,m}) 93
4.12.7点字符() 93
4.12.8反斜杠(\) 94
4.12.9反向引用 95
4.13 POSIX扩展正则表达式函数 95
4.13.1替换字符串 95
4.13.2分割字符串 95
4.14 PCRE兼容正则表达式函数 96
4.14.1查找字符串 96
4.14.2替换字符串 96
4.15实战 97
4.15.1超长文本的分页显示 97
4.15.2控制页面中输出字符串的长度 99
4.15.3正则无刷新用户注册 100
4.15.4计算密码长度 102
4.15.5去除用户填写注册信息中的空格 103
4.16小结 104
4.17学习成果检验 104
第5章 初探数组 105
5.1什么是数组 106
5.2声明数组 106
5.2.1数组命名规则 106
5.2.2通过PHP函数创建数组 107
5.2.3通过数组标识符“[]”创建数组 108
5.3数组的类型 108
5.3.1数字索引数组 109
5.3.2关联数组 109
5.4输出数组 109
5.5数组的构造 110
5.5.1创建一维数组 110
5.5.2创建二维数组 111
5.6遍历数组 111
5.6.1 foreach结构遍历数组 112
5.6.2 list()函数遍历数组 112
5.6.3 for语句遍历数组 113
5.7 PHP全局数组 114
5.7.1 $_SERVER[]全局数组 114
5.7.2 $_GET[]和$_POST[]全局数组 115
5.7.3 $_COOKIE全局数组 115
5.7.4 $_ENV[]全局数组 116
5.7.5 $_REQUEST[]全局数组 116
5.7.6 $_SESSION[]全局数组 116
5.7.7 $_FILES[]全局数组 116
5.8 PHP的数组函数 117
5.8.1统计数组元素个数 117
5.8.2向数组中添加元素 117
5.8.3获取数组中最后一个元素 118
5.8.4删除数组中重复元素 118
5.8.5获取数组中指定元素的键名 119
5.9实战 120
5.9.1获取上传文件的数据 120
5.9.2投票管理系统 120
5.9.3获取用户注册信息 121
5.9.4车牌摇号 122
5.9.5向数组中添加元素 122
5.10小结 122
5.11学习成果检验 123
第6章 日期和时间的管理 124
6.1 PHP的时间概念 125
6.1.1在php.ini文件中设置时区 125
6.1.2通过date default timezone set函数设置时区 125
6.2时间戳 126
6.2.1什么是时间戳 126
6.2.2 UNIX时间戳 126
6.2.3获取指定日期的时间戳 127
6.2.4获取当前时间戳 127
6.2.5将英文文本的日期时间描述解析为UNIX时间戳 128
6.3 PHP日期和时间的处理 129
6.3.1格式化日期和时间 129
6.3.2获取日期和时间信息 130
6.3.3获取本地化的日期和时间 131
6.3.4检验日期和时间的有效性 133
6.4实战 134
6.4.1实现倒计时的功能 134
6.4.2计算在线考试用时和剩余时间 135
6.4.3网页闹钟 138
6.4.4检验日期和时间的有效性 138
6.4.5获取指定时间的UNIX时间戳 139
6.5小结 139
6.6学习成果检验 139
第7章 程序调试与异常处理 140
7.1程序基本调试流程 141
7.2 PHP中的错误类型 141
7.2.1语法错误 142
7.2.2语义错误 143
7.2.3逻辑错误 143
7.2.4注释错误 144
7.2.5运行错误 144
7.3 PHP错误的调试 145
7.3.1 PHP的错误报告 145
7.3.2启动错误报告 145
7.3.3使用print语句调试程序 145
7.3.4应用@前缀字符屏蔽PHP脚本错误提示 146
7.3.5使用错误处理器记录日志 147
7.4 SQL错误的调试 148
7.4.1 PHP与MySQL连接错误 148
7.4.2 SQL语句错误 148
7.5实战 150
7.5.1运行缺少第三方组件的程序 150
7.5.2通过readfile()函数访问远程文件 150
7.5.3解决数据库乱码问题 151
7.5.4封装异常处理类 152
7.5.5解决程序的语法错误 153
7.6小结 153
7.7学习成果检验 154
第8章 综合实例(一)——在线论坛 155
8.1系统设计思路 156
8.1.1程序业务流程 156
8.1.2系统预览 156
8.2数据库设计 157
8.2.1数据库概要说明 157
8.2.2数据库概念设计 157
8.2.3数据库逻辑设计 158
8.3用户注册模块设计 159
8.3.1用户注册模块概述 159
8.3.2 JavaScript脚本和include()包含语句 160
8.3.3用户注册模块的实现过程 161
8.4用户登录模块设计 163
8.4.1用户登录模块概述 163
8.4.2通过JavaScript脚本判断用户名和密码是否为空 163
8.4.3用户登录模块的实现过程 164
8.5帖子分类管理模块设计 165
8.5.1帖子分类管理模块概述 165
8.5.2使用SQL语句查询数据技术 165
8.5.3帖子分类管理模块的实现过程 166
8.6发帖模块设计 168
8.6.1发帖模块概述 168
8.6.2 while循环语句技术 168
8.6.3发帖模块的实现过程 169
8.7回帖模块设计 170
8.7.1回帖模块概述 170
8.7.2 mysql函数处理技术 170
8.7.3回帖模块的实现过程 170
8.8后台管理模块设计 172
8.8.1后台管理模块概述 172
8.8.2 URL编码和SWITCH框架技术 172
8.8.3后台主页的实现过程 172
8.8.4栏目管理模块的实现过程 174
8.9小结 176
第2篇 初级开发 178
第9章 MySQL数据库 178
9.1 MySQL简介 179
9.1.1什么是MySQL 179
9.1.2 MySQL的特点 179
9.1.3 MySQL 5支持的特性 180
9.2 MySQL下载 180
9.3 MySQL的环境安装 182
9.4启动、连接、断开和停止MySQL服务器 186
9.4.1启动MySQL服务器 186
9.4.2连接和断开MySQL服务器 186
9.4.3停止MySQL服务器 187
9.5 phpMyAdmin图形化管理工具 188
9.5.1数据库操作管理 188
9.5.2管理数据表 189
9.5.3管理数据记录 190
9.5.4导入导出数据 193
9.5.5 phpMyAdmin设置编码格式 194
9.5.6 phpMyAdmin添加服务器新用户 194
9.5.7 phpMyAdmin中重置MySQL服务器登录密码 195
9.6小结 196
9.7学习成果检验 196
第10章 MySQL存储引擎与运算符 197
10.1 MySQL存储引擎 198
10.1.1什么是MySQL存储引擎 198
10.1.2查询MySQL中支持的存储引擎 198
10.1.3 InnoDB存储引擎 199
10.1.4 MyISAM存储引擎 200
10.1.5 MEMORY存储引擎 200
10.1.6如何选择存储引擎 201
10.1.7设置数据表的存储引擎 202
10.2 MySQL数据类型 203
10.2.1数字类型 203
10.2.2字符串类型 204
10.2.3日期和时间数据类型 205
10.3 MySQL运算符 205
10.3.1算术运算符 206
10.3.2比较运算符 206
10.3.3逻辑运算符 209
10.3.4位运算符 211
10.3.5运算符的优先级 211
10.4实战 212
10.4.1查看存储引擎和创建数据库 212
10.4.2位运算的比较 212
10.4.3逻辑运算的使用 213
10.4.4浮点数类型 213
10.5小结 213
10.6学习成果检验 213
第11章 MySQL函数之选 214
11.1 MySQL函数 215
11.2数学函数 215
11.2.1 ABS(x)函数 216
11.2.2 FLOOR(x)函数 216
11.2.3 RAND()函数 217
11.2.4 PI()函数 217
11.2.5 TRUNCATE(x,y)函数 217
11.2.6 ROUND(x)函数和ROUND(x,y)函数 217
11.2.7 SQRT(x)函数 218
11.3字符串函数 218
11.3.1 INSERT(sl,x,len,s2)函数 219
11.3.2 UPPER(s)、UCASE(s)函数 219
11.3.3 LEFT(s,n)函数 220
11.3.4 RTRIM(s)函数 220
11.3.5 SUBSTRING(s,n,len)函数 220
11.3.6 REVERSE(s)函数 220
11.3.7 FIELD(s,sl,s2,…)函数 221
11.4日期和时间函数 221
11.4.1 CURDATE()函数和CURRENT_DATE()函数 222
11.4.2 CURTIMEQ函数和CURRENT_TIME()函数 222
11.4.3 NOW()函数 223
11.4.4 DATEDIFF(dl,d2)函数 223
11.4.5 ADDDATE(d,n)函数 223
11.4.6 ADDDATE(d,INTERVAL expr type)函数 224
11.4.7 SUBDATE(d,n)函数 224
11.5条件判断函数 224
11.6系统信息函数 225
11.6.1获取MySQL版本号、连接数和数据库名的函数 225
11.6.2获取用户名的函数 225
11.6.3获取字符串的字符集和排序方式的函数 226
11.7加密函数 226
11.7.1加密函数PASSWORD(str) 227
11.7.2加密函数MD5(str) 227
11.8其他函数 227
11.8.1格式化函数FORMAT(x,n) 228
11.8.2改变字符集的函数 228
11.8.3改变字段数据类型的函数 229
11.9实战 229
11.9.1字符串函数的使用 229
11.9.2查看当前数据库版本号 229
11.9.3生成3个1~100之间的随机整数 230
11.9.4数字函数的使用 230
11.9.5加密函数的使用 230
11.10小结 230
11.11学习成果检验 231
第12章 MySQL基本操作 232
12.1 MySQL数据库操作 233
12.1.1创建数据库CREATE DATABASE 233
12.1.2查看数据库SHOW DATABASES 233
12.1.3选择数据库USE DATABASE 233
12.1.4删除数据库DROP DATABASE 234
12.2 MySQL数据表操作 234
12.2.1创建数据表CREATE TABLE 234
12.2.2查看表结构SHOW COLUMNS或DESCRIBE 235
12.2.3修改表结构ALTER TABLE 236
12.2.4重命名表RENAME TABLE 237
12.2.5删除表DROP TABLE 237
12.3 MySQL语句操作 237
12.3.1插入记录INSERT 238
12.3.2查询数据库记录SELECT 238
12.3.3修改记录UPDATE 241
12.3.4删除记录DELETE 241
12.4实战 242
12.4.1操作teacher表 242
12.4.2登录数据库系统 242
12.4.3读取MySQL数据库中数据(PHP语言) 243
12.4.4备份和恢复MySQL数据库(Java语言) 244
12.4.5查看表详细结构语句SHOW CREATE TABLE 245
12.5小结 245
12.6学习成果检验 246
第13章 MySQL数据查询 247
13.1基本查询语句 248
13.2单表查询 248
13.2.1查询所有字段 249
13.2.2查询指定字段 249
13.2.3查询指定数据 249
13.2.4带IN关键字的查询 250
13.2.5带BETWEEN AND的范围查询 250
13.2.6带LIKE的字符匹配查询 250
13.2.7用IS NULL关键字查询空值 251
13.2.8带AND的多条件查询 251
13.2.9带OR的多条件查询 252
13.2.10用DISTINCT关键字去除结果中的重复行 252
13.2.11用ORDER BY关键字对查询结果排序 252
13.2.12用GROUP BY关键字分组查询 253
13.2.13用LIMIT限制查询结果的数量 254
13.3聚合函数查询 254
13.3.1 COUNT()函数 255
13.3.2 SUM()函数 255
13.3.3 AVG()函数 255
13.3.4 MAX()函数 255
13.3.5 MIN()函数 256
13.4连接查询 256
13.4.1内连接查询 256
13.4.2外连接查询 257
13.4.3复合条件连接查询 258
13.5子查询 258
13.5.1带IN关键字的子查询 258
13.5.2带比较运算符的子查询 259
13.5.3带EXISTS关键字的子查询 260
13.5.4带ANY关键字的子查询 260
13.5.5带ALL关键字的子查询 261
13.6合并查询结果 262
13.7定义表和字段的别名 263
13.7.1为表取别名 263
13.7.2为字段取别名 263
13.8使用正则表达式查询 263
13.8.1匹配指定字符中的任意一个 264
13.8.2使用“*”和“+”来匹配多个字符 265
13.9实战 265
13.9.1使用聚合函数SUM对学生成绩进行汇总 265
13.9.2查询大于指定条件的记录 266
13.9.3使用比较运算符进行子查询 267
13.9.4 GROUP BY与HAVING关键字 267
13.9.5用符号“·”来替代字符串中的任意一个字符 267
13.10小结 268
13.11学习成果检验 268
第14章 综合实例(二)——留言本 269
14.1留言本概述 270
14.2系统分析流程 270
14.2.1程序业务流程 270
14.2.2系统预览 270
14.3数据库设计 271
14.3.1数据库概要说明 271
14.3.2数据库概念设计 272
14.3.3数据库逻辑设计 272
14.4公共模块设计 274
14.4.1数据库连接文件 274
14.4.2将文本中的字符转换为HTML标识符 274
14.4.3 JavaScript脚本 275
14.5首页模块设计 276
14.5.1首页设计概述 276
14.5.2 switch和include语句 277
14.5.3首页实现过程 278
14.6用户注册模块设计 279
14.6.1用户注册模块概述 279
14.6.2 JavaScript脚本验证表单元素 279
14.6.3用户注册模块实现过程 281
14.7添加留言模块设计 282
14.7.1添加留言模块概述 282
14.7.2 mysql_query()函数执行SQL语句 282
14.7.3添加留言模块实现过程 282
14.8查看留言模块设计 283
14.8.1查看留言模块概述 283
14.8.2验证数据类型与取整 283
14.8.3查看留言模块实现过程 284
14.9编辑留言模块设计 286
14.9.1编辑留言模块概述 286
14.9.2 JavaScript脚本控制弹出对话框 286
14.9.3编辑留言模块实现过程 287
14.10查询留言模块设计 287
14.10.1查询留言模块概述 287
14.10.2通过mysql_fetch_array()函数返回结果集 288
14.10.3查询留言模块实现过程 288
14.11版主模块设计 289
14.11.1版主模块概述 289
14.11.2验证登录用户是否是版主 289
14.11.3版主管理模块实现过程 290
14.12小结 291
第3篇 中级开发 294
第15章 MySQL存储过程和函数 294
15.1创建存储过程和存储函数 295
15.1.1创建存储过程 295
15.1.2创建存储函数 296
15.1.3变量的应用 297
15.1.4光标的运用 299
15.2流程控制语句 300
15.2.1 IF语句 300
15.2.2 CASE语句 301
15.2.3 WHILE循环语句 302
15.2.4 LOOP循环语句 303
15.2.5 REPEAT循环语句 304
15.3调用存储过程和存储函数 305
15.3.1调用存储过程 305
15.3.2调用存储函数 305
15.4查看存储过程和函数 305
15.4.1 SHOW STATUS语句 305
15.4.2 SHOW CREATE语句 306
15.5修改存储过程和函数 306
15.6删除存储过程和函数 307
15.7捕获存储过程中的错误 308
15.7.1定义条件 308
15.7.2定义处理程序 308
15.8实战 309
15.8.1使用存储过程实现用户注册(PHP) 309
15.8.2修改存储函数 310
15.8.3从information_schema.Routines表中查看存储过程 310
15.9小结 311
15.10学习成果检验 311
第16章 MySQL事务 312
16.1 MySQL事务概述 313
16.1.1原子性 313
16.1.2一致性 314
16.1.3孤立性 314
16.1.4持久性 314
16.2 MySQL事务的创建与存在周期 314
16.2.1初始化事务 315
16.2.2创建事务 315
16.2.3应用SELECT语句查看数据是否被正确输入 316
16.2.4提交事务 316
16.2.5撤销事务(事务回滚) 316
16.2.6事务的存在周期 317
16.3 MySQL行为 317
16.3.1自动提交 317
16.3.2事务的孤立级 318
16.3.3修改事务的孤立级 319
16.4事务和性能 319
16.4.1应用小事务 319
16.4.2选择合适的孤立级 319
16.4.3死锁的概念与避免 320
16.5 MySQL伪事务 320
16.5.1用表锁定代替事务 320
16.5.2应用表锁实现伪事务 322
16.6实战 322
16.6.1使用事务处理技术实现银行的安全转账(PHP) 322
16.6.2批处理中使用事务(Java) 323
16.7小结 324
16.8学习成果检验 324
第17章 触发器 325
17.1 MySQL触发器 326
17.1.1创建MySQL触发器 326
17.1.2创建具有多个执行语句的触发器 327
17.2查看触发器 328
17.2.1 SHOW TRIGGERS 328
17.2.2查看triggers表中触发器信息 328
17.3应用触发器 329
17.4删除触发器 330
17.5实战 330
17.5.1创建一个由INSERT触发的触发器 330
17.5.2获取数据库中的触发器 331
17.5.3使用DROP TIRGGER删除触发器 332
17.6小结 332
17.7学习成果检验 332
第18章 综合实例(三)——物流管理系统 333
18.1物流管理系统概述 334
18.2系统分析流程 334
18.2.1需求分析 334
18.2.2可行性分析 334
18.3系统设计流程 335
18.3.1系统目标 335
18.3.2系统功能结构 335
18.3.3系统预览 336
18.4数据库设计 337
18.4.1数据库分析 337
18.4.2数据库概念设计 337
18.4.3创建数据库及数据表 339
18.5网站首页设计 340
18.5.1网站首页概述 340
18.5.2网站首页设计技术 341
18.5.3网站首页的实现过程 341
18.6车源信息查询模块设计 342
18.6.1车源信息查询模块概述 342
18.6.2模糊查询技术 342
18.6.3车源信息查询模块的实现过程 344
18.7发货单管理模块设计 344
18.7.1发货单管理模块概述 344
18.7.2发货单编号生成技术 345
18.7.3发货单填单的实现过程 347
18.7.4发货单查询的实现过程 348
18.7.5发货单打印的实现过程 350
18.8回执单验收管理模块设计 350
18.8.1回执单模块概述 350
18.8.2 MySQL函数库函数应用技术 351
18.8.3回执单验收模块的实现过程 352
18.9基础信息管理模块设计 353
18.9.1基础信息管理模块概述 353
18.9.2面向对象封装密码修改类 353
18.9.3客户信息管理的实现过程 355
18.9.4车源信息管理的实现过程 356
18.10小结 358
第4篇 进阶提高 360
第19章 ADODB类库 360
19.1 ADODB类库是什么 361
19.2 ADODB支持的数据库 361
19.3 ADODB下载与安装 362
19.4 ADODB类库 363
19.4.1连接数据库函数 363
19.4.2操作数据库函数 365
19.4.3控制结果集存取方式 369
19.4.4操作结果集函数 369
19.4.5处理事务函数 372
19.4.6生成HTML表格函数 372
19.4.7生成下拉列表框函数 372
19.4.8实现分页功能函数 373
19.4.9错误处理函数 374
19.5实战 375
19.5.1实现分页 375
19.5.2处理事务 376
19.5.3缓存函数+ADODB动态生成静态页 377
19.5.4 ADODB控制结果集的存取方法 381
19.6小结 383
19.7学习成果检验 383
第20章 数据库编程技术 384
20.1 PHP访问MySQL数据库的一般步骤 385
20.2 PHP操作MySQL数据库的方法 386
20.2.1使用mysql_connect()函数连接MySQL服务器 386
20.2.2使用mysql_select_db()函数选择数据库文件 387
20.2.3使用mysql_query()函数执行SQL语句 387
20.2.4应用mysql_fetch_array()函数从数组结果集中获取信息 389
20.2.5应用mysql_fetch_object()函数从结果集中获取一行作为对象 390
20.2.6应用mysql_fetch_row()函数逐行获取结果集中的每条记录 391
20.2.7应用mysql_num__rows()函数获取查询结果集中的记录数 393
20.2.8关闭连接 394
20.3管理MySQL数据库中的数据 395
20.3.1应用insert命令动态添加公告信息 395
20.3.2应用select命令查询公告信息 397
20.3.3解决截取公告主题乱码问题 398
20.3.4分页显示公告信息 400
20.3.5应用update命令动态编辑公告信息 402
20.3.6应用delete命令动态删除公告信息 403
20.4 PHP操作MySQL事务 404
20.5 PHP操作MySQL存储过程 406
20.6实战 407
20.6.1输入页码跳转到指定页 407
20.6.2图片的分栏分页显示 409
20.6.3查询图书信息表中的前3条记录 412
20.6.4对查询结果进行降序排列输出 413
20.7小结 414
20.8学习成果检验 414
第21章 PDO数据库抽象层 415
21.1什么是PDO 416
21.1.1 PDO概述 416
21.1.2 PDO特点 416
21.1.3安装PDO 416
21.2 PDO连接数据库 417
21.2.1 PDO构造函数 417
21.2.2 DSN详解 417
21.3 PDO中执行SQL语句 418
21.3.1 exec()方法 418
21.3.2 query()方法 418
21.3.3预处理语句——prepare()和execute() 418
21.4 PDO中获取结果集 418
21.4.1 fetch()方法 418
21.4.2 fetchAll()方法 419
21.4.3 fetchColumn()方法 421
21.5 PDO中捕获SQL语句中的错误 422
21.5.1使用默认模式——PDO::ERRMODE_SILENT 422
21.5.2使用警告模式——PDO::ERRMODE_WARNING 422
21.5.3使用异常模式——PDO::ERRMODE_EXCEPTION 424
21.6 PDO中的错误处理 425
21.6.1 errorCode()方法 425
21.6.2 errorInfo()方法 426
21.7 PDO中的事务处理 427
21.8 PDO中的存储过程 428
21.9实战 430
21.9.1通过PDO更新数据库中数据 430
21.9.2明日书店会员注册 431
21.9.3添加留言信息 432
21.9.4查询留言内容 433
21.10小结 434
21.11学习成果检验 434
第22章 综合实例(四)——BCTY365网上社区 435
22.1 BCTY365网上社区概述 436
22.1.1系统功能结构流程 436
22.1.2系统预览 437
22.2数据库设计 438
22.2.1数据库概要说明 438
22.2.2数据库概念设计 438
22.2.3数据库逻辑设计 439
22.3前台首页设计 441
22.3.1前台首页概述 441
22.3.2公告信息的滚动输出技术 442
22.3.3前台首页的实现过程 444
22.4注册模块设计 445
22.4.1注册模块概述 445
22.4.2通过JavaScript脚本验证表单元素 445
22.4.3注册模块的实现过程 447
22.5技术支持模块设计 448
22.5.1技术支持模块概述 448
22.5.2分页技术 448
22.5.3常见问题模块的实现过程 450
22.5.4客户反馈模块的实现过程 450
22.6在线订购模块设计 451
22.6.1在线订购模块概述 451
22.6.2订单的预览及打印技术 452
22.6.3购物车的实现过程 453
22.6.4商品订单的实现过程 456
22.7社区论坛模块设计 457
22.7.1社区论坛模块概述 457
22.7.2页面跳转技术 457
22.7.3论坛分类的实现过程 458
22.7.4论坛帖子浏览的实现过程 460
22.7.5论坛帖子发布的实现过程 462
22.7.6论坛帖子回复的实现过程 464
22.8后台首页设计 465
22.8.1后台首页概述 465
22.8.2 switch框架技术 465
22.8.3后台首页的实现过程 467
22.9编程词典管理模块设计 468
22.9.1编程词典管理模块概述 468
22.9.2图片上传技术 468
22.9.3添加编程词典模块的实现过程 469
22.9.4编辑编程词典模块的实现过程 471
22.10软件升级管理模块设计 472
22.10.1软件升级管理模块概述 472
22.10.2动态输出下拉列表框的值 473
22.10.3软件升级包上传的实现过程 474
22.10.4软件升级包删除的实现过程 475
22.11在线支付技术专题 475
22.12小结 478
第5篇 高级应用 480
第23章 Smarty模板技术 480
23.1 Smarty简介 481
23.1.1 Smarty模板引擎 481
23.1.2 Smarty与MVC 482
23.1.3 Smarty特点 482
23.2 Smarty的安装配置 482
23.2.1 Smarty下载和安装 482
23.2.2 Smarty配置 483
23.2.3第一个Smarty程序 484
23.3 Smarty模板设计 485
23.3.1 Smarty模板文件 485
23.3.2注释 485
23.3.3变量 486
23.3.4修饰变量 488
23.3.5流程控制 489
23.4 Smarty程序设计 492
23.4.1 Smarty中的常用方法 492
23.4.2 Smarty的配置变量 493
23.5实战 494
23.5.1 Smarty模板中日期、时间的格式化输出 494
23.5.2 Smarty模板中的页面设计 494
23.5.3网站公告 495
23.5.4 Smarty模板中应用正则表达式 497
23.5.5 if语句判断当前用户权限 499
23.6小结 500
23.7学习成果检验 500
第24章 ThinkPHP框架 501
24.1 ThinkPHP简介 502
24.1.1 ThinkPHP框架的特点 502
24.1.2环境要求 502
24.1.3下载ThinkPHP框架 502
24.2 ThinkPHP架构 504
24.2.1 ThinkPHP的目录结构 504
24.2.2自动生成目录 505
24.2.3项目目录部署方案 505
24.2.4命名规范 506
24.2.5项目构建流程 507
24.3 ThinkPHP的配置 508
24.3.1配置格式 509
24.3.2调试配置 509
24.4 ThinkPHP的控制器 510
24.4.1控制器 510
24.4.2跨模块调用 511
24.5 ThinkPHP的模型 514
24.5.1模型的命名 514
24.5.2实例化模型 515
24.5.3属性访问 518
24.5.4连接数据库 518
24.5.5创建数据 521
24.5.6连贯操作 522
24.5.7 CURD操作 523
24.6 ThinkPHP的视图 528
24.6.1模板定义 528
24.6.2模板赋值 528
24.6.3指定模板文件 529
24.6.4特殊字符串替换 530
24.7内置ThinkTemplate模板引擎 533
24.8小结 538
24.9学习成果检验 538
第25章 Zend Framework框架 539
25.1 Zend Framework的MVC介绍 540
25.1.1 Zend Framework概述 540
25.1.2 Zend Framework常用组件 540
25.1.3 MVC原理 540
25.2 Zend Framework的MVC环境搭建 541
25.2.1环境配置 541
25.2.2框架结构 542
25.2.3创建流程 542
25.2.4 Zend Framework的编码标准 545
25.3 Zend Auth身份认证 546
25.3.1 Zend Auth适配器 546
25.3.2身份持久认证 547
25.3.3数据库认证 550
25.4 Zend_Db数据库操作 551
25.4.1 Zend_Db_Adapter数据库操作 551
25.4.2 Zend_Db_Table数据库操作 551
25.4.3数据表类 552
25.5 Zend_File文件控制 556
25.5.1使用Zend_File_Transfer_Adapter_Http实现POST方式文件上传 556
25.5.2对上传文件的合理性验证 558
25.5.3为上传增加过滤规则 558
25.6 Zend_Layout网站布局 559
25.6.1 Zend_Layout概述 559
25.6.2 Zend_Layout使用方法 559
25.6.3 Zend_Layout应用实例 560
25.7 Zend_Paginator分页 562
25.7.1 Zend_Paginator简介 562
25.7.2 Zend_Paginator分页方法 562
25.7.3 Zend_Paginator分页应用 563
25.8实战 566
25.8.1 Zend_Paginator实现数据分页显示 566
25.8.2 Zend_Framework用户身份验证 567
25.8.3 Zend_Mail发送邮件 569
25.8.4 Zend_Form制作用户注册表单 571
25.9小结 573
25.10学习成果检验 573
第26章 综合实例(五)——电子商务网站 574
26.1电子商务网站概述 575
26.2系统分析 575
26.2.1系统目标 575
26.2.2功能流程结构 575
26.2.3程序预览 575
26.3数据库设计 577
26.3.1数据库分析 577
26.3.2创建数据库和数据表 578
26.4公共文件设计 579
26.4.1数据库连接、管理和分页类文件 579
26.4.2 Smarty模板配置类文件 582
26.4.3执行类的实例化文件 582
26.5前台首页设计 582
26.5.1前台首页概述 582
26.5.2 Smarty模板页中的框架技术 583
26.5.3前台首页实现过程 583
26.6登录模块设计 585
26.6.1登录模块概述 585
26.6.2 Ajax无刷新验证技术 585
26.6.3用户注册 587
26.6.4用户登录 588
26.6.5找回密码 590
26.7会员信息模块设计 594
26.7.1会员信息模块概述 594
26.7.2会员信息查询技术 595
26.7.3会员中心 595
26.7.4安全退出 597
26.8商品展示模块设计 598
26.8.1商品展示模块概述 598
26.8.2分页技术 598
26.8.3商品展示模块的实现过程 599
26.9购物车模块设计 600
26.9.1购物车模块概述 600
26.9.2购物车中商品添加技术 600
26.9.3购物车展示 602
26.9.4更改商品数量 604
26.9.5删除商品 604
26.9.6保存购物车 606
26.10收银台模块设计 608
26.10.1收银台模块概述 608
26.10.2 PDO操作MySQL数据库技术 608
26.10.3显示订单 609
26.10.4填写订单 609
26.10.5处理订单 610
26.11后台首页设计 611
26.11.1后台首页概述 611
26.11.2后台网页布局技术 611
26.11.3后台首页实现过程 613
26.12小结 614
第6篇 项目实战 616
第27章 易查供求信息网 616
27.1易查供求信息网概述 617
27.2系统分析 617
27.2.1需求分析 617
27.2.2可行性分析 617
27.3系统设计 618
27.3.1系统目标 618
27.3.2系统功能结构 619
27.3.3系统预览 620
27.3.4文件夹组织结构 621
27.4数据库设计 622
27.4.1数据库分析 622
27.4.2数据库概念设计 622
27.4.3创建数据库及数据表 623
27.5前台首页设计 624
27.5.1前台首页概述 624
27.5.2超链接技术 625
27.5.3前台首页的实现过程 626
27.6免费供求信息发布模块设计 627
27.6.1免费供求信息发布模块概述 627
27.6.2 MySQL数据库连接技术 628
27.6.3免费供求信息发布模块的实现过程 630
27.7信息检索模块设计 631
27.7.1信息检索模块概述 631
27.7.2模糊查询技术 632
27.7.3信息检索模块的实现过程 633
27.8后台首页设计 636
27.8.1后台首页概述 636
27.8.2 frame框架技术 637
27.8.3后台首页的实现过程 639
27.9付费供求信息发布模块设计 640
27.9.1付费供求信息发布模块概述 640
27.9.2计算供求信息的有效时间 640
27.9.3付费供求信息发布模块的实现过程 640
27.10付费信息管理模块设计 642
27.10.1付费信息管理模块概述 642
27.10.2数据的更新和删除技术 643
27.10.3付费信息显示的实现过程 644
27.10.4付费信息审核的实现过程 646
27.10.5付费信息删除的实现过程 647
27.10.6单元测试 648
27.11小结 649
第28章 图书馆管理系统 650
28.1图书馆管理系统概述 651
28.2需求分析 651
28.3系统设计 651
28.3.1系统目标 651
28.3.2系统功能结构 652
28.3.3系统流程图 652
28.3.4系统预览 652
28.3.5文件夹组织结构 654
28.4数据库设计 654
28.4.1数据库分析 654
28.4.2数据库概念设计 654
28.4.3创建数据库及数据表 655
28.5首页设计 656
28.5.1首页概述 656
28.5.2权限设置技术 657
28.5.3首页的实现过程 658
28.6管理员模块设计 658
28.6.1管理员模块概述 658
28.6.2控制文件的访问权限 659
28.6.3系统登录页面的实现过程 660
28.6.4查看管理员列表页面的实现过程 661
28.6.5添加管理员信息页面的实现过程 662
28.6.6设置管理员权限页面的实现过程 663
28.6.7删除管理员的实现过程 665
28.7图书档案管理模块设计 665
28.7.1图书档案管理模块概述 665
28.7.2图书档案管理中的多表查询技术 666
28.7.3查看图书信息列表页面的实现过程 666
28.7.4添加图书信息页面的实现过程 667
28.7.5修改图书信息页面的实现过程 668
28.7.6删除图书信息的实现过程 670
28.8图书借还模块设计 670
28.8.1图书借还模块概述 670
28.8.2图书借还模块中的多表查询技术 670
28.8.3图书借阅页面的实现过程 671
28.8.4图书续借页面的实现过程 673
28.8.5图书归还页面的实现过程 675
28.8.6图书借阅查询页面的实现过程 676
28.9小结 678