PHP访问MySQL(毕业设计外文翻译)Word下载.doc
《PHP访问MySQL(毕业设计外文翻译)Word下载.doc》由会员分享,可在线阅读,更多相关《PHP访问MySQL(毕业设计外文翻译)Word下载.doc(29页珍藏版)》请在冰豆网上搜索。
![PHP访问MySQL(毕业设计外文翻译)Word下载.doc](https://file1.bdocx.com/fileroot1/2022-10/4/761e8fa1-6874-4aa3-9d83-041a6bb13d37/761e8fa1-6874-4aa3-9d83-041a6bb13d371.gif)
我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHPExtensionandApplicationRepository)中的数据库函数,我们可以使用这些函数操作所有支持的数据库。
这种灵活性源自于抽象。
对于编程接口而言,抽象简化了复杂的交互过程。
它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。
PEAR的DB类就是这样一种数据库接口的抽象。
你登录一个数据库所需要提供的信息被减少到最少。
这种标准的格式可以通过同一个函数来访问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的函数中还指定了要连接的数据库的类型。
你可以连接到MySQL或者其他支持的数据库。
我们会详细讨论这两种连接方式。
本章中,我们会学习如何从PHP连接到MySQL的服务器,如何使用PHP访问数据库中存储的数据,以及如何正确的向用户显示信息。
步骤
无论是通过MySQL命令行工具,还是通过PHP,执行一个查询的基本步骤都是一样的:
•连接到数据库
•选择要使用的数据库
•创建SELECT语句
•执行查询
•显示结果
我们将逐一介绍如何用PHP和PEAR的函数完成上面的每一步。
资源
当连接到MySQL数据库的时候,你会使用到两个新的资源。
第一个是连接的标识符,它记录了一个活动连接用来连接到数据库所必需的所有信息。
另外一个资源是结果资源,它包含了用来从一个有效的数据库查询结果中取出结果所需要的所有信息。
本章中我们会创建并使用这两种资源。
使用PHP函数查询数据库
本节我们会介绍如何使用PHP连接MySQL数据库。
这非常简单,我们会用一些例子说明。
但是之前我们应该稍微了解一下幕后发生的事情。
当你试图连接一个MySQL数据库的时候,MySQL服务器会根据你的用户名和密码进行身份认证。
PHP为你建立数据库的连接,你可以立即开始查询并得到结果。
我们需要同样的信息来连接数据库:
•数据库服务器的IP地址
•数据库的名字
•用户名
•密码
在开始之前,首先使用MySQL的命令行客户端确认你登录到数据库。
图9-1显示了数据库交互过程的各个步骤和两种类型资源之间的关系。
创建SELECT语句发生在第三个函数调用之前,但是在图中没有显示出来。
它是通过普通的PHP代码,而不是MySQL特定的PHP函数完成的。
图9-1:
使用数据库时函数和资源之间的交互
包含数据库登录细节
我们先创建一个文件,用来保存登录MySQL所用到的信息。
我们建议你把这些信息放在单独的文件里然后通过include来使用这个文件。
这样一来如果你修改了数据库的密码。
无论有多少个PHP文件访问数据库,你只需要修改这一个文件。
注意:
不用担心有人会直接看到这个文件从而得到你的数据库的登录信息。
如何被直接请求,这个文件会被当作PHP文件处理,返回结果是一个空白页。
假设这个文件的名字叫做db_login.php,并且它跟其他所用PHP文件放在同一个目录下。
这个文件的内容如例9-1所示。
例9-1:
设置数据库登录的配置文件模板
<
?
php
$db_host='
hostnameofdatabaseserver'
;
$db_database='
databasename'
$db_username='
username'
$db_password='
password'
>
在例9-2中,我们创建的文件使用跟Web服务器放在同一台机器上的数据库,并指定的数据库的名字,用户名和密码。
例9-2:
db_login.php文件示例
localhost'
test'
yourpass'
图9-2显示了如何在其他PHP文件中使用这个文件。
我们会继续使用在第七章中创建的数据库。
图9-2:
在多文件中重复使用登录信息
例9-3是精简后的,用mysqldump命令得到的重建这个数据库的SQL命令。
例9-3:
重建测试数据库的SQL语句
DROPTABLEIFEXISTSbooks;
CREATETABLEbooks(
title_idint(11)NOTNULLauto_increment,
titlevarchar(150)defaultNULL,
pagesint(11)defaultNULL,
PRIMARYKEY(title_id)
)ENGINE=MyISAMDEFAULTCHARSET=latin1;
--
--Dumpingdatafortablebooks
INSERTINTObooksVALUES(1,'
LinuxinaNutshell'
476),(2,'
ClassicShellScripting'
256);
--Tablestructurefortablepurchases
DROPTABLEIFEXISTSpurchases;
CREATETABLEpurchases(
idint(11)NOTNULLauto_increment,
uservarchar(10)defaultNULL,
titlevarchar(150)defaultNULL,
daydatedefaultNULL,
PRIMARYKEY(id)
--Dumpingdatafortablepurchases
LOCKTABLESpurchasesWRITE;
INSERTINTOpurchasesVALUES(1,'
Mdavis'
'
RegularExpressionPocketReference'
2005-02-15'
),(2,'
JavaScript&
DHTMLCookbook'
2005-02-10'
如果你在第8章中没有创建这些表,可以将例9-3中的代码保存成文件backup.sql,然后在命令行执行命令,命令格式如下:
mysql-uusername-ppassword-Ddatabase_name<
backup_file_name.sql
如果使用例子中的值,那么这个命令就是:
mysql-utest-pyourpass-Dtest<
backup.sql
数据库的名字叫test,它包含三个表,分别是books、authors和purchases。
每个表都有一些示例记录。
这些就足以让我们开始使用PHP来进行查询了。
连接到数据库
我们需要做的头一件事情是连接数据库,并且检查连接是否确实建立起来。
如例9-4所示,通过include包含连接信息的文件,我们可以在调用mysql_connect函数的时候使用这些变量而不是将这些值写死在代码中。
我们使用一个叫做db_test.php的文件,往其中增加这些代码段。
例9-4:
在db_test.php中包含连接参数和调用mysql_connect
//Includeourlogininformation
include('
db_login.php'
//Connect
$connection=mysql_connect($db_host,$db_username,$db_password);
if(!
$connection){
die("
Couldnotconnecttothedatabase:
<
br/>
"
.mysql_error());
}
函数mysql_connect的参数是数据库服务器主机、用户名和密码。
如果连接成功,就会返回新建立的连接,如果不能建立连接就会返回FALSE。
检查这个函数的返回值来确保连接的确建立起来了。
如果遇到问题,比如不正确的密码,可以使用mysql_error打印一条友好的警告信息以及导致错误的原因。
不仅仅是打印一条错误信息,die()还会停止这个程序的执行。
对于大部分数据库驱动网页来说,不能访问数据库就意味着网页毫无用处。
通过使用die来终止程序的执行,可以避免用户看到大量的错误信息。
请注意我们还没有指定数据库的名字。
诊断连接错误
你可能遇到的一个错误是:
Fatalerror:
Calltoundefinedfunctionmysql_connect()inC:
\ProgramFiles\Apache
SoftwareFoundation\Apache2.2\htdocs\db_test.phponline4
这个错误发生的原因是下载安装的PHP5.x默认没有包括对MySQL的支持。
解决这个问题需要将php_mysql.dll文件从PHP压缩包例的ext/目录复制到C:
/php,并修改C:
\WINDOWS\php.ini文件,确保下面两行没有被注释掉(注释的方法在行首使用分号)。
extension_dir="
c:
/PHP/ext/"
extension=php_mysql.dll
这样PHP扩展的目录就被设为C:
\PHP,MySQL的扩展也会被使用。
在编辑php.ini文件的时候,你可以使用编辑器的搜索功能来检查这两行是否已经存在,只是需要去掉注释,并且需要重新输入。
重新启动Apache,这样MySQL的支持就会被打开了。
选择数据库
建立连接之后,下一步就是使用mysql_select_db来选择我们要用的数据库。
它的参数有两个:
数据库名和可选的数据库连接。
如果不指定数据库连接,默认使用上一条mysql_connect所建立的连接。
//Selectthedatabase
$db_select=mysql_select_db($db_database);
$db