• 1. 第6章 MySQL服务器
    • 2. 目录6.1数据库系统简介 6.1.1数据库类型 6.1.2数据库服务器的优点 6.2MySQL数据库 6.2.1 MySQL简介 6.2.2 MySQL的特性
    • 3. 6.2.3 MySQL的应用 6.3 MySQL的安装和使用 6.3.1 MySQL的安装 6.3.2 MySQL的启动 6.3.3 MySQL管理员帐号和密码的设置 6.3.4 MySQL数据库使用实例
    • 4. 6.4 PHP的安装和使用 6.4.1 PHP的安装 6.4.2 配置PHP 6.4.4 启动Apache服务并测试PHP文件 6.4.5 PHP访问MySQL数据库 6.5 phpMyAdmin的安装和使用 6.5.1 phpMyAdmin的安装和配置
    • 5. 6.5.2 测试phpMyAdmin 6.5.3 phpMyAdmin的应用 6.5.4 用PHP程序测试phpMyAdmin 6.6.1 数据库的设计 6.6.2 PHP文件的编写 6.6.3 系统测试
    • 6. 数据库是数据管理的有效形式,它是计算机收集和存储数据的仓库或容器。数据库中的数据具有结构化形式存储、冗余度小,以及独立于应用程序、易于扩充、为多个用户所共享等众多优点,因此作为信息系统核心和基础的数据库技术得到越来越广泛的应用。从小型事务处理到大型信息系统,从一般企业管理到计算机辅助设计与制造、办公信息系统、地理信息系统等,越来越多新的应用领域采用数据库存储并处理它们的信息资源。
    • 7. 6.1数据库系统简介 数据库的数据具体要如何科学地组织和管理就要靠数据库管理系统来实现。数据库在建立、运行和维护时由数据库管理系统统一管理和控制。数据库管理系统使用户能够方便地定义和操纵数据,并且能够保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复。
    • 8. 6.1.1数据库类型 1. 纯文本数据库 纯文本数据库是最原始、最简单的数据存储方式,它是只用空格符、制表符和换行符来分割信息的文本文件。在Linux世界里也仍然经常使用纯文本数据库,型应用,对于大中型应用来说它存在诸多限制 l        只能顺序访问,不能随机访问; l        查找数据和数据关系时非常困难; l        多用户同时进行写操作时非常困难。 6.1 数据库系统简介
    • 9. 6.1 数据库系统简介 常用的中小型数据库系统包括: l        PostgreSQL l        MySQL l        Paradox l        Access
    • 10. 在Linux环境下,可以运行大多数的关系型数 据库系统,其中包括Oracle、DB2、Sybase以 及可以免费使用的PostgreSQL和MySQL.
    • 11. 一个数据库服务器是指运行在局域网中的 一台或多台服务器上的数据库管理系统软件,据这些服务是查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。
    • 12. 2. 关系数据库 关系数据库是现代流行的数据库系统中应用最 为普遍的一种,也是有效的数据组织方式之一。关系数据库是建立在集合论坚固的数学基础之上,有其坚实的数学理论基础,严密的逻辑、结构和简单明了的表达方式。 l        Oracle l        Sybase l        DB2 l        Informix l        SQL server
    • 13. 常用的企业级数据库系统包括: l        Oracle l        Sybase l        DB2 l        Informix l        SQL server 常用的中小型数据库系统包括: l        PostgreSQL l        MySQL
    • 14. 6.1数据库系统简介 6.1.2 数据库服务器的优点 1.减少编程量 数据库服务器提供了用于数据操纵的标准接口API。 2. 数据库安全保证好 数据库服务器提供监控性能、并发控制等工具。由DBA 统一负责授权访问数据库及网络管理。
    • 15. 3. 数据可靠性管理及恢复好 数据库服务器提供统一的数据库备份和恢复、启动和停止数据库的管理工具 4. 充分利用计算机资源 数据库服务器把数据管理及处理工作从客户机上分离出来,使网络上各计算机的资源能各尽其用。
    • 16. l        Paradox l        Access 在Linux环境下,可以运行大多数的关系型数据库系统,其中包括Oracle、DB2、Sybase以及可以免费使用的PostgreSQL和MySQL。 一个数据库服务器是指运行在局域网中的一台或多台服务器上的数据库管理系统软件,数据库服务器为客户应用提供服务,这些服务是查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。
    • 17. 3. 数据可靠性管理及恢复好 数据库服务器提供统一的数据库备份和恢复、启动和停止数据库的管理工具。 4. 充分利用计算机资源 数据库服务器把数据管理及处理工作从客户机上分离出来,使网络上各计算机的资源能各尽其用。
    • 18. 5. 提高了系统性能 l        能大大降低网络开销。 l        协调操作,减少资源竞争,避免死锁。 l        提供联机查询优化机制。 6. 便于平台扩展 l        多处理器(相同类型)的水平扩展。 l        多个服务器计算机的水平扩展。 l        垂直扩展:服务器可以移植到功能更强的计算机上,不涉及处理数据的重新分布问题。
    • 19. 数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其它应用程序的组成部分。
    • 20. 6.2 MySQL数据库 6.2.1 MySQL简介 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
    • 21. MySQL最初开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样API接口的新SQL的产生,这个API被设计成允许用mSQL书写的第三方代码,且更容易被移植到MySQL。
    • 22. MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个谜,包括开发者在内也不知道。
    • 23. MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
    • 24. 6.2 MySQL数据库 6.2.2 MySQL的特性 l        使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。 l        支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。 l        为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 l        支持多线程,充分利用CPU资源。
    • 25. l        优化的SQL查询算法,有效地提高查询速度。 l        既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其它的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 l        提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 l        提供用于管理、检查、优化数据库操作的管理工具。 l        可以处理拥有上千万条记录的大型数据库。
    • 26. 6.2 MySQL数据库6.2.3 MySQL的应用 与其它的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
    • 27. 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
    • 28. 6.3 MySQL的安装和使用 6.3.1 MySQL的安装 安装MySQL 数据库需要的软件包比较多,主要包含: l        perl-DBI-1.52-1.fc6.i386.rpm l        perl-DBD-MySQL-3.0007-1.fc6.i386.rpm l        mysql-5.0.22-2.1.0.1.i386.rpm l        mysql-server-5.0.22-2.1.0.1.i386.rpm l        mysql-devel-5.0.22-2.1.0.1.i386.rpm 安装软件包前,首先用“rpm –qa |grep perl”命令查看系统是否安了perl软件包。
    • 29. 图6-68 执行SQL脚本
    • 30. 6.3.1 MySQL的安装再用“rpm -qa|grep mysql”命令查看系统是否安装了MySQL软件包 . 从已安装的软件包看到,缺少了“mysql-devel-5.0.22-2.1.0.1.i386.rpm”包。打开桌面上的“RHEL/5.3 I386 DVD”,在“server”文件夹中找到“mysql-devel-5.0.45.7.el5.i386.rpm”,并复制到/opt这个目录下。
    • 31. 图6-68 执行SQL脚本
    • 32. 6.3.1 MySQL的安装打开终端,进入到“/opt/”目录下,用“rpm -ivh”命令安装该软件包。
    • 33. 6.3.2 MySQL的启动 MySQL 安装完毕后,需要用命令“service mysqld start”启动服务
    • 34. (本页无文本内容)
    • 35. 6.3.3 MySQL管理员帐号和密码的设置 出于安全性的考虑,需要设置MySQL管理员帐号和密码。使用“mysqladmin” 命令来建立管理员帐号和密码;使用“mysql -u root –p”命令来登录MySQL服务器.
    • 36. (本页无文本内容)
    • 37. 6.3.4 MySQL数据库使用实例 下面我们来建立一个数据库“aaa”,在其中创建表“admin”,并录入一些记录。 1. 创建数据库“aaa” 在MySQL终端执行命令“create database aaa;”.
    • 38. (本页无文本内容)
    • 39. 6.3.4 MySQL数据库使用实例可以用“status”命令查看当前的状态信息,包括编码方案,从图6-8中可以看到,MySQL默认的编码方案都是latin1 2. 创建表“admin” 在MySQL终端执行命令 “create table admin(user varchar(20),pass varchar(20));”创建表“admin”,然后用“desc admin”命令来查看表“admin”的结构。
    • 40. (本页无文本内容)
    • 41. 6.3.4 MySQL数据库使用实例3.插入记录信息 执行命令“insert into admin values(‘xyz’,‘222’);”向表“admin”中插入新记录. 执行命令“insert into admin values(‘张三’,‘111’);”向表“admin”中插入中文记录,然后用“select”命令查看记录信息 .
    • 42. (本页无文本内容)
    • 43. (本页无文本内容)
    • 44. 6.3.4 MySQL数据库使用实例另外,删除数据库命令是: “DROP DATABASE 数据库名;”,删除表的命令:“DROP TABLE 表名;” 对数据库操作需要掌握基本的SQL指令,我们在后面专门介绍一款方便快捷的MySQL数据库管理工具PHPMYADMIN,可以起到事半功倍的效果
    • 45. (本页无文本内容)
    • 46. 6.4 PHP的安装和使用 6.4.1 PHP的安装 安装PHP所需的软件包主要有: l        php-5.1.6-15.el5.i386.rpm l        php-cli-5.1.6-15.el5.i386.rpm l        php-common-5.1.6-15.el5.i386.rpm l        php-mysql-5.1.6-15.el5.i386.rpm l        php-pdo-5.1.6-15.el5.i386.rpm 先用“rpm -qa|grep php”命令检查系统中是否已安装了PHP软件包.
    • 47. (本页无文本内容)
    • 48. 6.4.1 PHP的安装 发现缺少两个软件包“php-pdo-5.1.6-15.el5.i386.rpm”和“php-mysql-5.1.6-15.el5.i386.rpm”,在Red Hat Enterprise Linux 5的镜像文件中找到并安装.
    • 49. (本页无文本内容)
    • 50. 6.4.2 配置PHP 在终端用命令“vim /etc/httpd/conf/httpd.conf”打开Apache的配置文件。主要的参数包括: ServerRoot :用来设置Apache的配置文件、错误文件和日志文件的存放目录,并且该目录是整个目录树的根节点。如果下面的字段设置中出现相对路径,那么就是相对这个路径,默认情况下根路径为“/etc/httpd”,可根据需要进行修改.
    • 51. (本页无文本内容)
    • 52. 6.4.2 配置PHP MaxClients:设置客户端最大连接数,缺省值为“256”,这里改为“1000” ServerAdmin:设置管理员的邮箱地址。 ServerName:设置服务器的主机名称. DocumentRoot:设置站点根目录,缺省值为“/var/www/html”,这里改为“/var/www/html/bbs”.
    • 53. 6.4.2 配置PHP :如果修改了DocumentRoot,则中也需要指定相同的目录,即允许所有人访问“/var/www/html/bbs ”目录 DirectoryIndex:设置站点主页文件的搜索顺序,由于后面要用PHP来设计网页,所以优先设置为index.php.
    • 54. 6.4.2 配置PHPAddDefaultCharset:设置默认的字符编码方式,在747行,缺省值为“UTF-8”,这里将其设置为“GB2312”,即在客户机浏览本站点时浏览器页面的默认字符编码格式. 按照上面的设置对Apache的配置文件修改完毕,保存并退出。 6.4.3 创建站点根目录和主页文件 在终端用命令创建“/var/www/html/bbs”目录,并修改目录bbs的权限为777.
    • 55. 6.4.2 配置PHP在站点根目录“/var/www/html/bbs”下用vi编辑器建立主页文件“index.php”. PHP语言一般放置于“”之间,在本例中,只用“echo”语句输出了一个字符串“Hello World欢迎”.
    • 56. (本页无文本内容)
    • 57. 6.4.4 启动Apache服务并测试PHP文件 用“service httpd start”命令启动Apache服务 . 打开浏览器,在地址栏输入“http://127.0.0.1/index.php”或http://127.0.0.1进行测试 中文内容呈现乱码。 解决方法: 首先查看浏览器的编码方式,点击“查看”/“字符编码”,可以看到,当前的字符编码方式是“简体中文(GB2312)”,这正是之前在Apache
    • 58. (本页无文本内容)
    • 59. (本页无文本内容)
    • 60. 6.4.4 启动Apache服务并测试PHP配置文件“/etc/httpd/conf/httpd.conf”中指定的字符类型,如果不是,需要修改为“简体中文(GB2312)”. 配置文件“/etc/httpd/conf/httpd.conf”中指定的字符类型,如果不是,需要修改为“简体中文(GB2312)”. 然后在站点根目录“/var/www/html/bbs/”下用文本编辑器打开主页文件
    • 61. 6.4.4 启动Apache服务并测试PHP“index.php”,选择“文件”菜单下的“另存为”,在弹出的对话框中将字符编码设置为“简体中文GB2312”,然后点击“保存”. 再次在浏览器中测试该页面,可以看到,中文都能正常显示了 .
    • 62. (本页无文本内容)
    • 63. (本页无文本内容)
    • 64. 6.4.5 PHP访问MySQL数据库 前面我们已经创建了数据库“aaa”,并在其中建立了表“admin”,插入了两条记录信息,这里,只需要再编写一个读取该表中记录的PHP文件即可。用文本编辑器在站点根目录“/var/www/html/bbs/”下建立“browse.php”文件.
    • 65. (本页无文本内容)
    • 66. 6.4.5 PHP访问MySQL数据库首先,用MYSQL_ connect()函数指定连接本地数据库“localhost”,并设置登陆MySQL服务器的帐户名是“root”,密码是“123456”。然后用“MYSQL_ select_db()函数”指定连接的数据库是“aaa”,并用“mysql_query(“set names gb2312”)”指定连接数据库时的字符编码方式为“gb2312”。最后用循环将SQL语句“select * from admin”的查询结果输出。注意:存盘时也存成“GB2312”格式.
    • 67. (本页无文本内容)
    • 68. (本页无文本内容)
    • 69. 6.4.5 PHP访问MySQL数据库 由于之前在MySQL数据库的表“admin”中插入中文记录采用的字符编码是按照默认的latin1的方式,而在Apache的主配置文件中指定的字符编码为GB2312,PHP文件存盘时也都存成了GB2312格式,编码方式的不一致导致了这里显示中文时会成为乱码。解决方法:用数据库管理软件“phpMyAdmin”处理中文记录。
    • 70. 6.4.5 PHP访问MySQL数据库本节介绍在Red Hat Enterprise 5下安装和配置“phpMyAdmin-2.11.9.6”。首先到phpMyAdmin的官方网站“http://www.phpmyadmin.net/home_page/downloads.php” 上下载安装包. 将该安装包复制到“/opt”目录下
    • 71. 6.4.5 PHP访问MySQL数据库打开终端窗口,输入命令“tar –jxvf phpMyAdmin-2.11.9.6-all-languages.tar.bz2”将压缩包解压 解压成功后,在“/opt”目录下可以看到解压的文件夹“phpMyAdmin-2.11.9.6-all-languages”.
    • 72. 6.4.5 PHP访问MySQL数据库进入“phpMyAdmin-2.11.9.6-all-languages”文件夹下,将该文件夹下的全部文件复制,如. 在站点根目录“/var/www/html/bbs/”下建立一个“phpmyadmin”文件夹,将刚才复制的内容粘贴进来。
    • 73. 6.4.5 PHP访问MySQL数据库在浏览器的地址栏中输入“http://127.0.0.1/phpmyadmin/index.php”,运行phpMyAdmin,由于还没有对phpMyAdmin进行配置,所以会出现如图6-39所示的错误信息。这时需要点击“setup script”超链接对phpMyAdmin先进行配置方可。
    • 74. 6.4.5 PHP访问MySQL数据库在配置之前,需要在“/var/www/html/bbs/phpmyadmin”目录下建立一个“config”目录,用来存放动态生成的配置文件,并将其权限设置成777. 点击“setup script”超链接后会跳转到phpMyAdmin配置页面,点击下方的“Add”按钮配置服务器.
    • 75. 6.4.5 PHP访问MySQL数据库 在服务器配置页面,设置连接MySQL的基本参数,包括端口号,一般设置成“3306”,用户“root”的密码,这里设置成了“123456”. 最后,在该页面下方的“Configuration”单元中点击“Save”按钮完成phpMyAdmin的配置.
    • 76. 6.4.5 PHP访问MySQL数据库此时,系统会提示phpMyAdmin的配置文件“config.inc.php”已经在“config”目录下生成了,需要将它复制到上一层目录(“/var/www/html/bbs/phpmyadmin”)中方可生效.
    • 77. 6.4.5 PHP访问MySQL数据库 打 开“/var/www/html/bbs/phpmyadmin/config/”目录会看到配置文件“config.inc.php”文件确实已经生成了,如图6-46所示。直接将其拷贝到上一层目录“/var/www/html/bbs/phpmyadmin/”中。
    • 78. 6.5 phpMyAdmin的安装和使用 “phpMyAdmin”是一套可以用来管理MySQL服务器以及单一数据库的PHP程序,对于不熟悉MySQL命令的人来说,是很方便的管理工具。 6.5.1 phpMyAdmin的安装和配置
    • 79. (本页无文本内容)
    • 80. (本页无文本内容)
    • 81. (本页无文本内容)
    • 82. (本页无文本内容)
    • 83. (本页无文本内容)
    • 84. (本页无文本内容)
    • 85. (本页无文本内容)
    • 86. (本页无文本内容)
    • 87. (本页无文本内容)
    • 88. (本页无文本内容)
    • 89. (本页无文本内容)
    • 90. (本页无文本内容)
    • 91. (本页无文本内容)
    • 92. (本页无文本内容)
    • 93. (本页无文本内容)
    • 94. 6.5.2 测试phpMyAdmin 打开浏览器,在地址栏中输入“http://127.0.0.1/phpmyadmin/index.php”,如果看到图6-48所示的效果,说明phpMyAdmin已经正常工作了。 如果在浏览器中看到“Wrong permission….”的错误提示,则需要修改目录的权限。
    • 95. (本页无文本内容)
    • 96. (本页无文本内容)
    • 97. 6.5.2 测试phpMyAdmin 解决方法: 打开终端,查看站点根目录“/var/www/html/bbs”的权限,这里为“777”,并且目录“phpmyadmin”的权限也为“777”。 用“chmod –R 755 bbs”命令修改站点根目录bbs及其中内容的权限。
    • 98. (本页无文本内容)
    • 99. (本页无文本内容)
    • 100. 6.5.2 测试phpMyAdmin再次在浏览器中测试,phpMyAdmin就没问题了
    • 101. (本页无文本内容)
    • 102. 6.5.3 phpMyAdmin的应用 phpMyAdmin最大的特点就是基于图形化的操作界面,这对于不熟悉MySQL命令的人来说,无疑是再好不过的了。 下面我们来建立一个学生成绩数据库“score”,并在其中创建学生成绩表“score1”,并录入一些同学的记录信息。 1. 创建数据库“score” 创建一个新的数据库“score”,MySQL连接校对选择“gb2312_chinese_ci”,其余按默认选项即可,点击“创建”。
    • 103. (本页无文本内容)
    • 104. 6.5.3 phpMyAdmin的应用这时,phpMyAdmin会根据用户设置的参数创建数据库“score”,并将对应的SQL语句显示出来。 2 创建表“score1” 由于只是创建了数据库“score”,其中还没有任何表,所以在页面的下方,会有一个创建表的文本框,并可设置字段的个数。这里创建一个表“score1”,列数为3列,然后点击“执行”。
    • 105. (本页无文本内容)
    • 106. 6.5.3 phpMyAdmin的应用如果用文本编辑器打开“config.inc.php”文件,可以看到前面设置的参数已写入到该配置文件中了
    • 107. 为表“score1”创建3个字段:“id”、“name”、“score”,类型如图6-55所示,这里特别要注意:表的整理类型选择“gb2312_chinese_ci” 字段类型都设置好后,点击“保存”,phpMyAdmin会根据用户设置的参数创建表“score1”,并将对应的SQL语句显示出来。 6.5.3 phpMyAdmin的应用
    • 108. (本页无文本内容)
    • 109. 6.5.3 phpMyAdmin的应用3 插入新记录 数据库和表都建立好了,现在可以向表“score1”中插入记录了,点击页面上方的“插入”,可以插入新记录。这里插入“张三”的信息,由于字段“id”设置成自动增长类型,所以只需要录入姓名和成绩即可,然后点“执行”。
    • 110. (本页无文本内容)
    • 111. 6.5.3 phpMyAdmin的应用用同样的方法,再插入记录“李四”和“王五”。查看记录信息,可以点击上方的“浏览”。4 phpMyAdmin的其它应用 如果想在phpMyAdmin中直接运行SQL语句,可以点击上方的“SQL”标签,输入SQL语句即可。
    • 112. 6.5.3 phpMyAdmin的应用如果想将这个数据库的SQL语句导出,则可以点击“导出”标签,在左侧的导出格式中选择“SQL”,然后点“执行” 。 整个数据库的基本信息对应的SQL脚本都已总结出来
    • 113. 6.5.4 用PHP程序测试phpMyAdmin 编写测试程序“browse1.php”。 在文件“browse1.php”中,主要指定了访问的数据库是“score”,字符编码方式为“gb2312”,并用循环结构输出了表“score1”中的全部记录信息。注意:保存时要存成“GB2312”格式。
    • 114. (本页无文本内容)
    • 115. (本页无文本内容)
    • 116. 6.5.4 用PHP程序测试phpMyAdmin在浏览器中测试,从图6-65中可以看到,用phpMyAdmin创建的数据库“score”下的表“score1”中的记录信息正常显示,并且中文也不是乱码了。
    • 117. (本页无文本内容)
    • 118. 6.6 综合实例 在本节中将设计一个用户登陆系统,只有数据库中的合法用户才能成功登陆,否则显示出错信息。
    • 119. 6.6 综合实例6.6.1 数据库的设计 用phpMyAdmin创建数据库“login”,MySQL连接校对选择“gb2312_chinese_ci”,其余按默认选项即可,点击“创建”,如图6-66所示 表结构以及记录信息直接用已写好的SQL 脚本生成。
    • 120. (本页无文本内容)
    • 121. admin.sql代码如下: # MySQL-Front 3.2 (Build 6.2) /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET CHARACTER SET 'gb2312' */; # Host: 127.0.0.1 Database: login # ------------------------------------------------------
    • 122. # Server version 5.0.21-community-nt # # Table structure for table admin # DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `user` varchar(20) NOT NULL default 'admin', `pass` varchar(20) NOT NULL default 'admin',
    • 123. PRIMARY KEY (`user`) ) ENGINE=MyISAM DEFAULT CHARSET=gb2312; # # Dumping data for table admin # INSERT INTO `admin` (`user`,`pass`) VALUES ('admin','admin');
    • 124. # /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    • 125. 图6-68 执行SQL脚本
    • 126. 图6-67为用“文本编辑器”打开“admin.sql”,的效果。可以看到,在该脚本文件中,主  要指定了表admin包含两个字段user和pass,均为字符类型,编码格式采用“gb2312”,并插入了一条记录信息。              将上面的SQL脚本复制并粘贴到phpMyAdmin的数据库“login”的SQL脚本窗口内,然后点击“执行”,创建相关的数据库表,并插入记录,这里要特别注意:如果粘贴的SQL语句包含中文,编码方式又不是当前的“GB2312”,就会导致数据库中的中文记录出现乱码,所以最好手动录入中文记录。
    • 127. (本页无文本内容)
    • 128. phpMyAdmin会根据SQL脚本生成所需的表admin,并在表中插入了基本的记录信息,如图6-69所示。 图6-69 成功创建表
    • 129. 点击表“admin”,再点击“浏览”,可以看到成功插入的记录信息,如图6-70所示。 图6-70 浏览数据库记录 数据库、表以及记录信息都已经创建好了。
    • 130. 6.6 综合实例6.6.2 PHP文件的编写 在站点根目录“/var/www/html/bbs”下专门建立“login”文件夹,本例中涉及到的PHP文件均存放在此目录下。 为了方便管理,专门编写了连接数据库的两个头文件“vars.php”和“dbfunc.php”。其中“vars.php”设置了连接MySQL的帐户名,密码以及要访问的数据库名等信息,如图6-71所示。
    • 131. (本页无文本内容)
    • 132. 图6-71 vars.php 在“dbfunc.php”文件中,首先包含了连接数据库文件“vars.php”,然后设置了连接数据库的字符编码为“gb2312”。另外还定义了连接数据库函数“connect_db()”,关闭连接函数“disconnect_db()”以及用户身份验证函数“auth_user()”,如图6-72所示。
    • 133. 图6-72 dbfunc.php 图6-73为用户登录文件为“admin.php”,主要通过表单接收用户输入的帐户名及密码,然后提交到处理文件“admin_login.php”进行身份验证。
    • 134. 图6-73 admin.php
    • 135. 用户登录验证文件为“admin_login.php”,如图6-74所示。首先包含了文件“dbfunc.php”,然后用POST方法接收从前一个页面传来的变量“user”和“pass”的值,然后调用用户身份验证函数“auth_user()”,核实输入的帐户和密码与表“admin”中的记录是否一致,如果一致,则显示欢迎信息;否则显示出错,需要重新登录。
    • 136. 图6-74 admin.php 注意:各个PHP文件保存时的编码格式都要设置成“GB2312”。
    • 137. 6.6 综合实例6.6.3 系统测试 在浏览器的地址栏中录入“http://127.0.0.1/login/admin.php”,进入到用户登录界面,如图6-75所示。 图6-75 用户登陆页面 如果输入的用户帐户和密码不正确,会显示出错信息,如图6-76所示。
    • 138. 图6-77 登陆成功页面