
本书是一本关于PHP+MariaDB Web开发的书籍。从广度上看,内容系统而全面,全书一共包含4篇:第1篇详细介绍了PHP开发和运行环境的搭建、Windows和Linux环境下的搭建过程、PHP的知识点、PHP操作XML和JSON数据的方法,以及面向对象的概念。第2篇详细介绍了操作MariaDB数据库的所有细节,包括数据库的创建、数据表的操作、索引和视图的操作、函数和存储过程的操作、用户和权限的操作,以及数据库的备份与恢复等重要内容;第3篇详细介绍了PHP和MariaDB数据库的交互过程和方法、创建网页的重要知识,以及PHP的重要框架Smarty、CodeIgniter和CakePHP;第4篇详细介绍了PHP开发的几个典型案例,灵活运用了本书介绍的多个知识点。从深度上看,本书是作者多年开发经验的总结,力求详细介绍PHP的各个知识点,重要的是都附带了开发示例,对于理解和现场实践都具有重要意义;同时,对MariaDB数据库也进行了详尽介绍和示例讲解。从实践上看,本书介绍了PHP的重要框架,帮助读者快速进行PHP开发,而且实战开发了几个案例,这几个案例各有不同特点,涉及了PHP不同的重要知识点,加深对PHP+MariaDB的理解。本书不但可以作为一本桌边参考书,同时具备可操作性。
前 言 目前互联网高速发展,展现信息的方式多种多样,其中以HTML方式展示占到很大的比重,用户打开IE就能获取各种所需的信息。互联网发展已有许多年头,HTML展示信息的方式也逐步更新发展,其主要展现信息的方式有静态页面和动态页面,静态页面主要展示用户预先在页面中写入的信息,目前这种方式已不太适合信息高速膨胀的互联网;动态页面现在已成为主流方向,其主要表现形式在于用户更新完信息后,页面能动态更新,趋于更智能化管理,代表有各类新闻网站、用户博客、论坛等。 PHP作为一种脚本语言,被广泛用于编写动态网页。由于其具有开发速度快、运行效率高、可扩展性强等优点,受到了广大编程爱好者的关注,随着Web 2.0和移动互联网技术的兴起,越来越多的网站及相关应用都选择了PHP作为主流的开发方案。根据世界编程语言排行榜,2015年1月PHP排行第六,PHP从业人员将逐步增加,其待遇也会相应增加。 本书内容 本书力求以通俗易懂的方式讲解PHP,注重理论与实践相结合,同时加入最新Web 2.0技术,让读者能以最节省的时间学习到PHP技术以及各种相关技术。本书以实用性为原则,各个章节以翔实的用例结合理论,让读者以最短的时间掌握这门语言。另外,本书重点讲解流行的开源数据库MariaDB的各种操作,包括MariaDB的安装、创建数据库、创建和删除数据表,以及表中数据的插入、修改和删除等操作,同时讲解PHP如何与MariaDB整合。重要的是,本书讲解的内容都是基于开源的,并结合大量的案例,帮助读者理解PHP和MariaDB的运行原理,以达到快速开发各种应用的目的。如果你正需要一本讲解PHP与MariaDB数据库实践,并且如何融入Web 2.0最新技术的书籍,本书将是很好的选择。 本书同样可以作为PHP开发人员在编程过程中的参考手册,随时进行查阅。 参加本书编写的人员还有:狄亚敏、陈杰、张莉、史建波、郑文全、刘京臣、王秋红、李永成、朱梅萍、柳利、付晓帆、陈潇凯、赵冬、陈永胜。 本书读者 本书适合以下读者: ? 初级及中级PHP开发工程师 ? 从其他开发语言,如ASP、JSP等,转向PHP的开发工程师 ? PHP网站设计、开发及维护人员 ? 自学PHP开发的大中专院校在校学生 作者介绍 李世川 毕业于北京大学计算机信息科学技术学院数据库实验室,硕士学位,专注于数据库技术理论和应用的研究,对于数据库技术的应用开发有较深的研究和实战经验,精通并熟练掌握MariaDB、MySQL、PostgreSQL、MongoDB、Sqlite等开源数据库,以及SQL Server、Oracle等商业数据库的管理及开发,掌握PHP、ASP、Java、Objective-C、PowerBuilder、Delphi等编程语言的应用及结合数据库的开发,并具有十多年的数据库应用系统开发经验。
目 录 第1篇 PHP篇 第1章 开发环境搭建 2 1.1 PHP介绍 2 1.1.1 PHP发展 2 1.1.2 PHP特点 2 1.1.3 PHP应用 3 1.2 PHP开发运行环境 3 1.3 在Windows中搭建Apache环境 3 1.3.1 Apache在Windows中的安装 3 1.3.2 PHP在Windows中的安装 7 1.3.3 MariaDB在Windows中的安装 9 1.3.4 PHP的配置 12 1.3.5 Apache的配置 13 1.4 在IIS中配置PHP环境 14 1.4.1 IIS的安装 14 1.4.2 安装并配置PHP 15 1.5 在Linux中搭建PHP开发环境 18 1.5.1 安装Apache和PHP 19 1.5.2 测试安装 19 1.5.3 安装MariaDB 20 1.5.4 启动MariaDB 20 1.6 PHP编辑工具 21 1.6.1 Eclipse PDT 21 1.6.2 NetBeans for PHP 24 1.6.3 Notepad++ 26 1.6.4 其他相关编辑器 27 1.7 本章小结 28 第2章 PHP基础知识 29 2.1 PHP的风格 29 2.2 输出字符串 30 2.3 PHP注释 31 2.4 PHP数据类型 32 2.4.1 PHP支持的数据类型 32 2.4.2 Integer 32 2.4.3 Float 33 2.4.4 String 33 2.4.5 Boolean 34 2.4.6 Array 34 2.4.7 其他类型 35 2.5 PHP变量和常量 35 2.5.1 PHP变量 35 2.5.2 变量的创建 36 2.5.3 变量的赋值 36 2.5.4 静态变量 37 2.5.5 PHP变量作用域 37 2.5.6 PHP常量 38 2.6 PHP运算符 39 2.7 PHP表达式 41 2.8 PHP流程控制 41 2.8.1 顺序语句 41 2.8.2 条件判断语句 42 2.8.3 循环语句 44 2.9 PHP书写规范 46 2.9.1 命名规范 46 2.9.2 注释规范 47 2.9.3 代码编写规范 48 2.10 本章小结 50 第3章 PHP函数和文件操作 51 3.1 函数介绍 51 3.2 函数定义 51 3.3 函数的参数 52 3.3.1 按值传递参数 52 3.3.2 按引用传递参数 53 3.3.3 默认值 53 3.4 可变函数 54 3.5 递归函数 54 3.6 常用函数 54 3.6.1 字符串处理函数 55 3.6.2 日期处理函数 57 3.6.3 数组操作函数 59 3.6.4 数值函数 61 3.7 目录及文件操作 62 3.7.1 目录操作 62 3.7.2 文件操作 63 3.8 包含文件 66 3.9 本章小结 67 第4章 PHP Cookie和Session 68 4.1 Cookie介绍 68 4.2 创建Cookie 69 4.3 访问Cookie 70 4.4 删除Cookie 71 4.5 使用Cookie注意事项 71 4.6 Session介绍 72 4.7 PHP中Session的设置 72 4.8 Session存储数据 73 4.9 Session相关函数 74 4.10 Cookie与Session比较 74 4.11 Cookie与Session综合案例 75 4.12 本章小结 76 第5章 PHP操作XML和JSON数据 77 5.1 XML介绍 77 5.2 XML结构 78 5.3 XML规范 78 5.4 PHP操作XML的方法 80 5.5 使用DOMDocument方法 81 5.5.1 读操作 81 5.5.2 写操作 83 5.6 使用SimpleXML方法 85 5.6.1 读操作 85 5.6.2 写操作 86 5.6.3 删除操作 87 5.7 使用XMLReader方法 88 5.8 PHP操作JSON数据方法 89 5.8.1 JSON介绍 89 5.8.2 JSON数据格式 90 5.8.3 PHP处理JSON数据 91 5.8.4 中文编码问题 93 5.9 本章小结 94 第6章 PHP 面向对象操作 95 6.1 面向对象的概念 95 6.2 PHP中的类 96 6.2.1 创建类 96 6.2.2 构造函数和析构函数 98 6.2.3 实例化 99 6.3 类的继承 100 6.3.1 继承的创建 100 6.3.2 parent关键字 101 6.3.3 $this关键字 101 6.4 方法的覆盖 102 6.5 属性的覆盖 103 6.6 final关键字 104 6.7 抽象类 105 6.8 接口 106 6.9 本章小结 108 第2篇 MariaDB篇 第7章 MariaDB基本操作 110 7.1 MariaDB介绍 110 7.2 MariaDB的启动 111 7.3 创建数据库 113 7.4 创建表 115 7.5 更改表 117 7.6 删除表 119 7.7 插入数据 119 7.8 查询数据 120 7.9 更新数据 121 7.10 删除数据 122 7.11 where子句 123 7.12 本章小结 124 第8章 MariaDB索引和视图 125 8.1 索引介绍 125 8.2 MariaDB索引 126 8.3 创建索引 127 8.4 查看索引 129 8.5 删除索引 129 8.6 唯一索引 130 8.7 主键索引 131 8.8 全文索引 132 8.9 视图介绍 134 8.10 创建视图 135 8.11 修改视图 136 8.12 删除视图 137 8.13 更新视图内容 137 8.14 本章小结 138 第9章 MariaDB函数和存储过程 139 9.1 MariaDB函数介绍 139 9.2 内置函数 139 9.2.1 字符串处理函数 139 9.2.2 数值处理函数 141 9.2.3 日期时间处理函数 142 9.2.4 流程处理函数 142 9.2.5 其他相关函数 143 9.3 自定义函数 143 9.3.1 自定义函数语法 143 9.3.2 自定义函数使用示例 144 9.3.3 自定义函数体 144 9.4 存储过程介绍 147 9.5 创建存储过程 147 9.6 本章小结 148 第10章 MariaDB用户和权限 149 10.1 用户与权限介绍 149 10.2 创建用户 149 10.3 删除用户 150 10.4 重命名用户 151 10.5 更改密码 151 10.6 赋予用户权限 152 10.7 收回用户权限 153 10.8 本章小结 154 第11章 MariaDB备份与恢复 155 11.1 备份与恢复介绍 155 11.2 mysqldump备份与还原 155 11.2.1 mysqldump备份 156 11.2.2 mysql还原 157 11.2.3 source还原 158 11.3 二进制日志文件的备份与还原 158 11.3.1 实现二进制日志文件的备份 158 11.3.2 mysqlbinlog命令 159 11.4 物理备份 159 11.5 主从复制 160 11.6 备份策略 162 11.7 本章小结 163 第12章 MariaDB图形化管理 164 12.1 phpMyAdmin介绍 164 12.2 phpMyAdmin安装 164 12.3 phpMyAdmin配置 165 12.4 phpMyAdmin界面介绍 167 12.5 创建数据库 168 12.6 创建数据表 169 12.7 数据表操作 170 12.8 其他操作 171 12.9 HeidiSQL介绍 172 12.10 HeidiSQL安装 172 12.11 HeidiSQL界面 173 12.12 创建数据库 174 12.13 创建数据表 175 12.14 数据库操作 176 12.15 其他操作 176 12.16 比较 177 12.17 本章小结 178 第3篇 高级篇 第13章 PHP连接MariaDB操作 180 13.1 PHP + MySQL方式 180 13.1.1 确认PHP已安装支持MySQL连接的扩展 180 13.1.2 连接示例 181 13.1.3 连接函数及使用方法介绍 182 13.2 PHP + MySQLi 方式 186 13.2.1 确认PHP已安装支持MySQLi连接的扩展 186 13.2.2 连接示例 187 13.2.3 重要函数介绍 187 13.3 PHP + PDO 方式 191 13.3.1 确认PHP已安装支持pdo_mysql连接的扩展 191 13.3.2 连接示例 192 13.3.3 PDO类 192 13.3.4 PDOStatement 类 194 13.4 本章小结 195 第14章 HTML CSS/JavaScript/jQuery操作 196 14.1 HTML介绍 196 14.2 HTML构成 197 14.3 HTML元素 197 14.3.1 页面注释 197 14.3.2 title标记 198 14.3.3 meta标记 198 14.3.4 link标记 199 14.3.5 body标记 199 14.3.6 文本标记 200 14.3.7 段落标记 201 14.3.8 表格标记 201 14.3.9 特殊符号 202 14.3.10 其他标记 203 14.4 HTML表单 204 14.5 CSS介绍 207 14.6 CSS的创建 207 14.7 常用的CSS样式 209 14.8 JavaScript介绍 212 14.9 JavaScript创建 213 14.10 JavaScript代码演示 214 14.11 jQuery介绍 216 14.12 jQuery安装 216 14.13 jQuery开发 217 14.14 本章小结 220 第15章 PHP框架之Smarty 221 15.1 模板引擎 221 15.2 安装和使用Smarty 222 15.3 Smarty设置 224 15.4 Smarty基本操作 225 15.5 本章小结 230 第16章 PHP框架之CodeIgniter 231 16.1 MVC介绍 231 16.2 CodeIgniter介绍 232 16.3 下载并安装CodeIgniter 233 16.4 使用CodeIgniter示例 234 16.5 CodeIgniter运行原理 237 16.6 CodeIgniter基本配置 240 16.6.1 设置网站地址 240 16.6.2 修改网站默认的控制器 240 16.6.3 修改数据库配置 241 16.6.4 路由配置 242 16.6.5 取消URL中的index.php 243 16.7 CodeIgniter使用技巧 245 16.7.1 URL辅助函数 245 16.7.2 Form辅助函数 246 16.7.3 HTML辅助函数 248 16.7.4 数据库操作 249 16.8 本章小结 251 第17章 PHP框架之CakePHP 252 17.1 CakePHP介绍 252 17.2 CakePHP下载和安装 253 17.3 CakePHP使用示例 256 17.4 CakePHP的使用 258 17.4.1 命名方法 258 17.4.2 语言本地化 259 17.4.3 路由设置 260 17.4.4 控制器的使用 262 17.4.5 视图的使用 264 17.4.6 数据库操作 266 17.5 本章小结 268 第4篇 实战篇 第18章 日程管理案例 270 18.1 项目概述 270 18.2 实现功能 270 18.3 使用工具 271 18.4 建立数据表 271 18.5 文件结构 271 18.6 实现代码 272 18.7 本章小结 279 第19章 树形菜单案例 280 19.1 项目概述 280 19.2 功能设计 280 19.3 数据表设计 281 19.4 程序代码演示 282 19.4.1 创建类 282 19.4.2 显示Menu方法 283 19.4.3 增加Menu方法 285 19.4.4 删除Menu方法 287 19.5 本章小结 288 第20章 内容管理系统(CMS)案例 289 20.1 项目概述 289 20.2 实现功能 289 20.3 数据表设计 290 20.4 实现代码 291 20.4.1 菜单管理 291 20.4.2 用户管理 294 20.4.3 日程管理 299 20.4.4 文章管理 303 20.4.5 图库管理 308 20.5 本章小结 313
2003年7月在总后卫生部药品仪器检验所工作至今,主要从事计算机应用系统的研究与编程开发工作。北京大学数据库实验室的863课题《CoSQL RX双引擎数据库的研究与开发》,主要承担其中XML索引的研究和编码部分,并完成示范系统的开发。