毕业设计(论文)外文翻译通过PHP访问MySQL.doc
《毕业设计(论文)外文翻译通过PHP访问MySQL.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)外文翻译通过PHP访问MySQL.doc(28页珍藏版)》请在三一办公上搜索。
1、译文通过PHP访问MySQL现在你已经可以熟练地使用MySQL客户端软件来操作数据库里的数据,我们也可以开始学习如何使用PHP来显示和修改数据库里的数据了。PHP有标准的函数用来操作数据库。我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHP Extension and Application Repository )中的数据库函数,我们可以使用这些函数操作所有支持的数据库。这种灵活性源自于抽象。对于编程接口而言,抽象简化了复杂的交互过程。它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。PEAR的DB类就是这样一种数据库接口的抽象。你登录一个数据库
2、所需要提供的信息被减少到最少。这种标准的格式可以通过同一个函数来访问MySQL以及其他的数据库。同样,一些MySQL特定的函数被更一般的、可以用在很多数据库上的函数所替代。比如,MySQL特定的连接函数是: mysql_connect($db_host, $db_username, $db_password);而PEAR的DB提供的连接函数是:$connection = DB:connect(mysql:/$db_username:$db_password$db_host/$db_database);两个命令都提供了同样的基本信息,但是PEAR的函数中还指定了要连接的数据库的类型。你可以连接到
3、MySQL或者其他支持的数据库。我们会详细讨论这两种连接方式。本章中,我们会学习如何从PHP连接到MySQL的服务器,如何使用PHP访问数据库中存储的数据,以及如何正确的向用户显示信息。步骤无论是通过MySQL命令行工具,还是通过PHP,执行一个查询的基本步骤都是一样的: 连接到数据库 选择要使用的数据库 创建SELECT语句 执行查询 显示结果我们将逐一介绍如何用PHP和PEAR的函数完成上面的每一步。资源当连接到MySQL数据库的时候,你会使用到两个新的资源。第一个是连接的标识符,它记录了一个活动连接用来连接到数据库所必需的所有信息。另外一个资源是结果资源,它包含了用来从一个有效的数据库查
4、询结果中取出结果所需要的所有信息。本章中我们会创建并使用这两种资源。使用PHP函数查询数据库本节我们会介绍如何使用PHP连接MySQL数据库。这非常简单,我们会用一些例子说明。但是之前我们应该稍微了解一下幕后发生的事情。当你试图连接一个MySQL数据库的时候,MySQL服务器会根据你的用户名和密码进行身份认证。PHP为你建立数据库的连接,你可以立即开始查询并得到结果。我们需要同样的信息来连接数据库: 数据库服务器的IP地址 数据库的名字 用户名 密码在开始之前,首先使用MySQL的命令行客户端确认你登录到数据库。图9-1显示了数据库交互过程的各个步骤和两种类型资源之间的关系。创建SELECT语
5、句发生在第三个函数调用之前,但是在图中没有显示出来。它是通过普通的PHP代码,而不是MySQL特定的PHP函数完成的。图9-1:使用数据库时函数和资源之间的交互包含数据库登录细节我们先创建一个文件,用来保存登录MySQL所用到的信息。我们建议你把这些信息放在单独的文件里然后通过include来使用这个文件。这样一来如果你修改了数据库的密码。无论有多少个PHP文件访问数据库,你只需要修改这一个文件。注意:不用担心有人会直接看到这个文件从而得到你的数据库的登录信息。如何被直接请求,这个文件会被当作PHP文件处理,返回结果是一个空白页。假设这个文件的名字叫做db_login.php,并且它跟其他所用
6、PHP文件放在同一个目录下。这个文件的内容如例9-1所示。例9-1:设置数据库登录的配置文件模板在例9-2中,我们创建的文件使用跟Web服务器放在同一台机器上的数据库,并指定的数据库的名字,用户名和密码。例9-2:db_login.php文件示例图9-2显示了如何在其他PHP文件中使用这个文件。我们会继续使用在第七章中创建的数据库。图9-2:在多文件中重复使用登录信息例9-3是精简后的,用mysqldump命令得到的重建这个数据库的SQL命令。例9-3:重建测试数据库的SQL语句DROP TABLE IF EXISTS books;CREATE TABLE books (title_id in
7、t(11) NOT NULL auto_increment,title varchar(150) default NULL,pages int(11) default NULL,PRIMARY KEY (title_id) ENGINE=MyISAM DEFAULT CHARSET=latin1;- Dumping data for table books-INSERT INTO books VALUES (1,Linux in a Nutshell,476),(2,Classic Shell Scripting,256);- Table structure for table purchas
8、es-DROP TABLE IF EXISTS purchases;CREATE TABLE purchases ( id int(11) NOT NULL auto_increment, user varchar(10) default NULL, title varchar(150) default NULL, day date default NULL,PRIMARY KEY (id) ENGINE=MyISAM DEFAULT CHARSET=latin1;- Dumping data for table purchases-LOCK TABLES purchases WRITE;IN
9、SERT INTO purchases VALUES (1,Mdavis,Regular Expression Pocket Reference,2005-02-15),(2,Mdavis,JavaScript & DHTML Cookbook,2005-02-10);如果你在第8章中没有创建这些表,可以将例9-3中的代码保存成文件backup.sql,然后在命令行执行命令,命令格式如下:mysql -u username -ppassword -D database_name backup_file_name.sql如果使用例子中的值,那么这个命令就是:mysql -u test -pyou
10、rpass -D test backup.sql数据库的名字叫test,它包含三个表,分别是books、authors和purchases。每个表都有一些示例记录。这些就足以让我们开始使用PHP来进行查询了。连接到数据库我们需要做的头一件事情是连接数据库,并且检查连接是否确实建立起来。如例9-4所示,通过include包含连接信息的文件,我们可以在调用mysql_connect函数的时候使用这些变量而不是将这些值写死在代码中。我们使用一个叫做db_test.php的文件,往其中增加这些代码段。例9-4:在db_test.php中包含连接参数和调用mysql_connect/ Include o
11、ur login informationinclude(db_login.php);/ Connect$connection = mysql_connect($db_host, $db_username, $db_password);if (!$connection)die (Could not connect to the database: . mysql_error( );函数mysql_connect的参数是数据库服务器主机、用户名和密码。如果连接成功,就会返回新建立的连接,如果不能建立连接就会返回FALSE。检查这个函数的返回值来确保连接的确建立起来了。如果遇到问题,比如不正确的密码
12、,可以使用mysql_error打印一条友好的警告信息以及导致错误的原因。注意:不仅仅是打印一条错误信息,die()还会停止这个程序的执行。对于大部分数据库驱动网页来说,不能访问数据库就意味着网页毫无用处。通过使用die来终止程序的执行,可以避免用户看到大量的错误信息。请注意我们还没有指定数据库的名字。诊断连接错误你可能遇到的一个错误是:Fatal error: Call to undefined function mysql_connect( ) in C:Program FilesApacheSoftware FoundationApache2.2htdocsdb_test.php on
13、line 4这个错误发生的原因是下载安装的PHP5.x默认没有包括对MySQL的支持。解决这个问题需要将php_mysql.dll文件从PHP压缩包例的ext/目录复制到C:/php,并修改C:WINDOWSphp.ini文件,确保下面两行没有被注释掉(注释的方法在行首使用分号)。extension_dir = c:/PHP/ext/extension=php_mysql.dll这样PHP扩展的目录就被设为C:PHP,MySQL的扩展也会被使用。在编辑php.ini文件的时候,你可以使用编辑器的搜索功能来检查这两行是否已经存在,只是需要去掉注释,并且需要重新输入。重新启动Apache,这样My
14、SQL的支持就会被打开了。选择数据库建立连接之后,下一步就是使用mysql_select_db来选择我们要用的数据库。它的参数有两个:数据库名和可选的数据库连接。如果不指定数据库连接,默认使用上一条mysql_connect所建立的连接。/ Select the database$db_select=mysql_select_db($db_database);if (!$db_select)die (Could not select the database: . mysql_error( );同样的,每次访问数据库的时候最好能检查可能的错误并且进行显示。注意:虽然可以在同一个脚本里多次调用m
15、ysql_select_db,但这不是一个好习惯。现在我们做好了一切准备工作,可以开始执行SQL查询了。构建SQL SELECT查询构建SQL查询非常容易就是将一个字符串赋值给变量。这个字符串就是我们的SQL查询,当然我们要给出有效的SQL查询,否则执行这个查询的时候MySQL会返回错误。我们使用$query作为变量名,这个名字对应其目的,你也可以选择任何你喜欢的变量名。这个例子中的SQL查询是”SELECT * FROM books”。注意:跟使用mysql命令行客户端不同,这里的查询不需要以分号结尾。你可以使用字符串连接操作符(.)来构建查询:/ Assign the query$sele
16、ct = SELECT ;$column = * ;$from = FROM ;$tables = books ;$where = NATURAL JOIN authors;$query = $select.$column.$from.$tables.$where;这个版本的代码比下面的代码要灵活多了:/ Assign the query$query = SELECT * FROM books NATURAL JOIN authors;查询字符串也可以在WHERE子句中使用变量来限定返回什么样的行,这些变量可能是用户信息,也可能是来自其他的查询。现在我们已经将查询赋值给了一个变量,下一步就是执
17、行它。执行查询使用mysql_query函数来告诉数据库执行查询。它有两个参数:查询和可选的数据库连接,返回值是查询结果。我们将查询结果保存在一个变量里,也许你已经猜到我们要用变量名就是$result。这里同样有必要检查mysql_query的返回值不是FALSE来确保查询字符串和数据库连接都没有问题。/ Execute the query$result = mysql_query( $query );if (!$result)die (Could not query the database: . mysql_error( );当数据库查询的时候,所有的结果构成一个结果集。这些结果跟使用my
18、sql命令行客户端执行同样查询所得到的行一致。要显示这些结果,你需要依次处理这些行。取结果并显示使用mysql_fetch_row从结果集中取出一行,它的用法如下:array mysql_fetch_row ( resource $result);它的参数是SQL查询返回的结果,我们将结果保存在$result中。每次调用它返回一行数据,直到没有数据为止,这时候它返回FALSE。这样,我们可以使用一个循环,在循环内调用mysql_fetch_row并使用一些代码来显示每一行。/ Fetch and display the resultswhile ($result_row = mysql_fet
19、ch_row($result)echo Title: .$result_row1 . ;echo Author: .$result_row4 . ;echo Pages: .$result_row2 . ;结果行的所有列都保存在一个数组里,可以方便地进行访问。变量$result_row2访问结果行的第二个属性(数组的顺序是查询是定义的列的顺序,如果使用SELECE * ,那么数组顺序就是表的列的顺序)。取结果的方式去结果的方式不止一种。使用mysql_fetch_arrry可以一次性将所有结果放在一个数组里。它的参数是查询结果和一个可选的结果绑定方式。如果绑定方式指定为MYSQL_ASSOC,
20、数组中的结果则使用查询中列的名字进行访问。如果指定了MYSQL_NUM,那么就使用从0开始的数字来访问结果。默认使用的方式是MYSQL_BOTH,这样返回的数组支持两种类型的访问。Mysql_fetch_assoc是使用MYSQL_ASSOC取结果的另外一种方式。用mysql_fetch_array加上MYSQL_ASSOC的方式重写上面的代码,如下所示:/ Fetch and display the resultswhile ($result_row = mysql_fetch_array($result, MYSQL_ASSOC)echo Title: .$result_rowtitle
21、. ;echo Author: .$result_rowauthor . ;echo Pages: .$result_rowpages . ;关闭连接绝大部分情况下,我们在使用完一个数据库之后要关闭到它的连接。使用mysql_close来关闭一个数据库,它会告诉PHP和MySQL这个数据库连接已经不再使用,所使用的所有资源和内存都可以释放。mysql_close($connection)使用PEARPEAR是一个框架和可重用PHP组建的发布系统,它为PHP开发提供了一套增强的功能,PEAR包括很多种模块,用来处理从会话管理到购物车功能的几乎所有事情。表9-1列出了现有的模块种类。表9-1:PE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 外文 翻译 通过 PHP 访问 MySQL

链接地址:https://www.31ppt.com/p-2388760.html