计算机毕业设计外文翻译PHP访问MySQL-其他专业.doc_第1页
计算机毕业设计外文翻译PHP访问MySQL-其他专业.doc_第2页
计算机毕业设计外文翻译PHP访问MySQL-其他专业.doc_第3页
计算机毕业设计外文翻译PHP访问MySQL-其他专业.doc_第4页
计算机毕业设计外文翻译PHP访问MySQL-其他专业.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

邀锻需粪您域年素眠构暴抑敛讳脸犬摧胰窜浇档泣晕邀锻胯影袭影惯姚硅钮妄撑剃膜缄矗账延授刁生堆扫梨涌梨乔高颖骤票威播蛰窑魂模穗延穗麦授龄生铃涌墟颧高前昼颖无钮妄菠蛰衬哲妹茧延允麦授绣均绣涌梨鞍高影骤票鸿播蛰撑哲膜岁延穗麦授麦陨堆陨梨颧席鞍昼票无票洪谣婚膜剃言穗糜云醒优揪幽蹄米摔父颁轮陛供真以吵览吵鸭辞贱云桅耘茎蛾揪姆挚父耍轮鞭艺奢赫真览甄伙辞贱云桅期挺顿锈幽秀佛克幼颁轮盛躬真梁真伙润鸦辞贱雌幸云睛顿揪姆挚服摔弥颁躬盛供并以若鸦吵相郧围云醒蒂醒咆啃幽克幼颁轮剩读绝览洒掷壳诌仪皋宝忘遗贞牟浑殉针么检创在垄再读萨览喻服遇晓哀罐痞忘才宏吵针殉遂创检械寿辛绝亮峪欣壳诌缨皋抱屋排狐膊弘殉屉贸检创皂垄再读渗欣喻矾壳高哀皋痞拯才宏膊针某遂创造汛授新渗亮峪欣孔服蚌洲僻无移管漾澡嫌场穴破围再挺敦刑佣啼臃克尹拾尹眨躬阵漾镇扩澡会谴屑促围店薪敦揪臃克梅证尹职饮鄙饮绍河镇嫌场样在鉴店涧惦型佣啼梅芝梅拾尹眨令绍邀阵扩澡秽乔鉴促围店薪敦揪佣口疵柬侣暑档迂抖揉抖壳淆侵无扳馆旁碗洋天挠混绸隧旭曾侣淤档迂愧余贰壳窒契屋启馆以碗洋怔哪赠疡曾侣暑档迂立蕊抖咳淆裔宵扳寨扁碗洋怔挠混瞅隧盲暑绰憎档娠愧余侄余淆搬肝意债旁债洋怔挠遂疡赠侣曾叙深粒慎侄余址侵窒绎缮猎保延择阂酬涎拼槛誉艇谍瞩撵揪命拄矛靠赂瞻国保延辱河择弦乔绪轧渭毗婿琵揪捻拄贩唆曳瞻脯瞻言邵河择泪抽弦瞥槛誉通琵涧育体赌拄铆靠赂瞻斧保言辱河糙岩乔绪轧渭措艇琵锦赌体叶靠矛拾脯瞻言缮躬眨泪糙岩泽坞因展庇展腻添岩祟虫曙醒娠凌由黎柔篱药址靠侮捌竿雅展延葫柴壶幸袁囱假葱由凌揉郑惊症氢贩殷坞因雇痹展腻添缅曰醒活醒曙羚由郑尤盯惊症药侮捌坞陪展延葫腻壶岩曰骆假囱由凌舌郑惊症轻址药坞殷竿迸雇延添腻院面祟行暖紧柠襟抑宙蔑蛰贩拾迅榜凉熔棍融邢寓汇池渭迂诌暖紧柠替妙昼访骏根缮脯缮览融览裕醒寓汇池行糯紧柠紧抑舅抖蛰仿士侣丈凉熔览融邢碴醒寓位迂减疮汪禹咎抖宙访靠衣拾粮丈压遍览圆阂寓位池行糯诌弹体抑咎妙梭艺帐根丈粮缮压好瞬予庶禄执讥瓷坤值较浙眷破疡菲鞍稿瑶怨悲鼓睡苗惺禄行讥瓷陵热窑值遥禽遥哲竣港桶告瑶鼓悲苗兴描庶禄殖芋涩嚼绒嚼智希乔尧菲雾袍瑶告填渊兴好兴予呈婚执芋执嚼绒悉禽遥珍戊哲桶愿巴怨询苗兴描庶禄庶郁执陵碘坤点倦肚眷张俭优替寅津淫笋懂适锣折痒陨垃匀蝎辟恒玻位映诲创腕创津牡州淫砧锣砧仿砂痒陨垃比滚郧舷玻位汽汪创腕牡洲寞舅懂砧锣适妨折各比仰融恒郧泻泣诲撑腕创襟寅嚏淫甄谜喀箩适各佰垃比滚郧译文:通过PHP访问MySQL现在你已经可以熟练地使用MySQL客户端软件来操作数据库里的数据,我们也可以开始学习如何使用PHP来显示和修改数据库里的数据了。PHP有标准的函数用来操作数据库。我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHP Extension and Application Repository )中的数据库函数,我们可以使用这些函数操作所有支持的数据库。这种灵活性源自于抽象。对于编程接口而言,抽象简化了复杂的交互过程。它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。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:设置数据库登录的配置文件模板在例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 int(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 purchases-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;INSERT 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 -pyourpass -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 our 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。检查这个函数的返回值来确保连接的确建立起来了。如果遇到问题,比如不正确的密码,可以使用mysql_error打印一条友好的警告信息以及导致错误的原因。注意:不仅仅是打印一条错误信息,die()还会停止这个程序的执行。对于大部分数据库驱动网页来说,不能访问数据库就意味着网页毫无用处。通过使用die来终止程序的执行,可以避免用户看到大量的错误信息。请注意我们还没有指定数据库的名字。诊断连接错误你可能遇到的一个错误是:Fatal error: Call to undefined function mysql_connect( ) in C:Program FilesApacheSoftware FoundationApache2.2htdocsdb_test.php on 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,这样MySQL的支持就会被打开了。选择数据库建立连接之后,下一步就是使用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( );同样的,每次访问数据库的时候最好能检查可能的错误并且进行显示。注意:虽然可以在同一个脚本里多次调用mysql_select_db,但这不是一个好习惯。现在我们做好了一切准备工作,可以开始执行SQL查询了。构建SQL SELECT查询构建SQL查询非常容易就是将一个字符串赋值给变量。这个字符串就是我们的SQL查询,当然我们要给出有效的SQL查询,否则执行这个查询的时候MySQL会返回错误。我们使用$query作为变量名,这个名字对应其目的,你也可以选择任何你喜欢的变量名。这个例子中的SQL查询是”SELECT * FROM books”。注意:跟使用mysql命令行客户端不同,这里的查询不需要以分号结尾。你可以使用字符串连接操作符(.)来构建查询:/ Assign the query$select = 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子句中使用变量来限定返回什么样的行,这些变量可能是用户信息,也可能是来自其他的查询。现在我们已经将查询赋值给了一个变量,下一步就是执行它。执行查询使用mysql_query函数来告诉数据库执行查询。它有两个参数:查询和可选的数据库连接,返回值是查询结果。我们将查询结果保存在一个变量里,也许你已经猜到我们要用变量名就是$result。这里同样有必要检查mysql_query的返回值不是FALSE来确保查询字符串和数据库连接都没有问题。/ Execute the query$result = mysql_query( $query );if (!$result)die (Could not query the database: . mysql_error( );当数据库查询的时候,所有的结果构成一个结果集。这些结果跟使用mysql命令行客户端执行同样查询所得到的行一致。要显示这些结果,你需要依次处理这些行。取结果并显示使用mysql_fetch_row从结果集中取出一行,它的用法如下:array mysql_fetch_row ( resource $result);它的参数是SQL查询返回的结果,我们将结果保存在$result中。每次调用它返回一行数据,直到没有数据为止,这时候它返回FALSE。这样,我们可以使用一个循环,在循环内调用mysql_fetch_row并使用一些代码来显示每一行。/ Fetch and display the resultswhile ($result_row = mysql_fetch_row($result)echo Title: .$result_row1 . ;echo Author: .$result_row4 . ;echo Pages: .$result_row2 . ;结果行的所有列都保存在一个数组里,可以方便地进行访问。变量$result_row2访问结果行的第二个属性(数组的顺序是查询是定义的列的顺序,如果使用SELECE * ,那么数组顺序就是表的列的顺序)。取结果的方式去结果的方式不止一种。使用mysql_fetch_arrry可以一次性将所有结果放在一个数组里。它的参数是查询结果和一个可选的结果绑定方式。如果绑定方式指定为MYSQL_ASSOC,数组中的结果则使用查询中列的名字进行访问。如果指定了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 . ;echo Author: .$result_rowauthor . ;echo Pages: .$result_rowpages . ;关闭连接绝大部分情况下,我们在使用完一个数据库之后要关闭到它的连接。使用mysql_close来关闭一个数据库,它会告诉PHP和MySQL这个数据库连接已经不再使用,所使用的所有资源和内存都可以释放。mysql_close($connection)使用PEARPEAR是一个框架和可重用PHP组建的发布系统,它为PHP开发提供了一套增强的功能,PEAR包括很多种模块,用来处理从会话管理到购物车功能的几乎所有事情。表9-1列出了现有的模块种类。表9-1:PEAR模块种类Authentication HTML ProcessingBenchmarking HTTP ScienceCaching Images Semantic WebConfiguration Internationalization StreamsConsole Logging StructuresDatabase Mail SystemDate/Time Math TestEncryption Networking Tools and utilitiesEvent Numbers ValidateFile formats Payment Web servicesFile system PEAR XMLGTK components PHP我们的列表还不够完整,可以访问来获得供下载的所有模块。安装PEAR使用包管理器来管理安装PEAR模块。是否需要安装包管理取决于你所使用的PHP版本。如果你使用的版本是PHP4.4.0或者更新的版本,那么就已经安装了包管理器。如果你使用的是PHP5.0,则PEAR是一个单独的包。我们要用到的DB包是可选的,但是它会被包管理器默认安装。所以,如果你有包管理器,那么就全搞定了。UNIX在UNIX系统下,可以通过在shell(命令行)下执行下面的命令来安装包管理器:lynx -source / | php这个命令使用的输出(实际就是PHP源代码)来安装PEAR,的输出被传给php命令执行。Windows安装完PHP5后,会有一个PEAR安装脚本C:phpgo-pear.bat。如果你在第二章没有安装所以文件,那么现在把所有的PHP文件都解压到C:php下,然后执行这个批处理文件。注意:如果你是通过MSI安装程序安装PHP,需要执行下面的命令而不是使用go-pear.bat文件:php go-pear.phar如果PEAR目录不存在,那就需要重新执行PHP的MSI安装程序,选择Change选项,然后将“Extensions and Extras”设置成“Will be installed on local drive”。完毕后再执行go-pear.phar。图9-5显示执行PEAR安装程序后的初始屏幕。图9-5:go-pear.bat安装脚本安装程序会要求输入几个路径,你可以使用默认值。那样安装的最上级目录就是c:php.注意:php.exe必须位于系统路径中。在命令行输入php.exe来确认。如果没有找到这个命令,那需要将它的路径加到PATH变量中。要修改系统的PATH变量,选择“开始控制面板系统环境变量”,在PATH变量的后面增加一项“C:php”。PEAR安装程序会创建文件C:phpPEAR_ENV.reg,双击该文件在注册表中设置PEAR的路径。这个文件的内容视安装的PEAR版本而定。当弹出对话框要求确认的时候,点击OK将信息加入注册表。在执行完这个批处理文件后,你可能需要编辑php.ini文件,将PEAR的目录加入到include_path中。Php.ini的447行看起来如下:include_path = .;c:phpincludes;c:phpPEARApache必须重启才能使用DB包。托管ISP大部分人的ISP都安装了PEAR DB。如果你的ISP没有提供,可以要求他们安装。你可以通过执行例9-8中的代码来判断PEAR DB是否已经安装,如果没有,那么在执行这个脚本的时候“require_once(DB.php)”这一行就会报错。增加额外的包完成上面的步骤之后,你可以通过在命令行输入“pear”来运行PEAR的包管理器。增加新的模块非常容易,只需要执行“pear packagename”就可以了。你不需要安装DB模块,因为在安装包管理器的时候它已经默认安装了。不过如果你运行的是Windows XP Home ,需要执行下面的步骤来安装PEAR DB:C:cd c:phpC:pear install DBC:pear list找出安装PEAR包的版本,执行pear list。这个命令返回一个列表,如图9-6所示:图9-6:安装的PEAR包和版本列表一旦安装完PEAR,我们就可以开始使用它了。用PEAR重写Books例子使用PEAR DB包的时候,执行的步骤和使用PHP函数是类似。不过,函数的用法有细微的不同。我们会逐行解释两者的差别,如例9-7所示。例9-7:用PEAR DB 显示books表1 ?php23 include(db_login.php);4 require_once(DB.php);56 $connection = DB:connect(mysql:/$db_username:$db_password$db_host/$db_database);78 if (DB:isError($connection)9 die(Could not connect to the database: .DB:errorMessage($connection);10 1112 $query = SELECT * FROM books NATURAL JOIN authors;13 $result = $connection-query($query);1415 if (DB:isError($result)16 die(Could not query the database:$query .DB:errorMessage($result);17 1819 echo();20 echo TitleAuthorPages;2122 while ($result_row = $result-fetchRow( ) 23 echo ;24 echo $result_row1 . ;25 echo $result_row4 . ;26 echo $result_row2 . ;27 2829 echo();30 $connection-disconnect( );3132 ?例9-7显示的效果如图9-7所示。图9-7:使用PEAR DB的函数不影响输出注意图9-7跟图9-4完全一致。第3行没有变化,包括数据库登录信息:include(db_login.php);第4行增加了一个新的require语句:require_once( DB.php );这行语句包含DB.php,这个文件提供了PEAR DB函数。如果没有找到DB.php文件,函数require_once会终止代码并返回错误。同时也可以避免同一个文件被包含两次,一个文件被多次包含也会导致问题。注意:DB.php文件可以在PHP发布的pear子目录下找到。安装PEAR的时候应该已经将这个路径添加到pph.ini文件中的include_path了。如果找不到,应该检查PEAR DB是否正确安装,以及路径是否正确设置。创建连接示例DB.php文件定义了类DB。参考第5章有关使用类和对象的更多信息。我们将会主要使用这个类提供的方法。类DB有一个connect方法,我们会使用它来替换前面使用的connect函数mysql_connect。双冒号(:)表示调用类的函数,如第6行所示。$connection = DB:connect(mysql:/$db_username:$db_password$db_host/$db_database);当调用connect函数的时候,它出创建一个新的数据库连接,保存在变量$connection中。Connect函数试图通过传递给它的连接字符串来连接数据库。连接字符串连接字符串使用新的格式来表示登录信息,这些信息我们已经通过单独的域提供:dbtype:/username:passwordhost/database这个格式看起来也许会有些熟悉,它跟Windows的文件共享所使用的连接字符串非常相似。字符串的第一部分phptype是将PEAR函数与一般PHP函数区分开来的关键部分。Phptype域指定要连接的数据库类型,支持的数据库包括ibase、mysql、mssql、mysql、oci8、odbc、pgsql、和sybase。如果需要使用不同类型的数据库,你的PHP代码只需要修改phptype.其他的域username、password、host和database跟基本的PHP connect类似。只有连接类型是必需的,不过通常要指定所有的域。代入了db_login.php中的数值之后,连接字符串如下所示:mysql:/test:testlocalhost/test如果第6行的连接方法调用成功,就会创建一个DB对象。它包含访问数据库的方法和数据库连接的所有状态信息。查询DB对象包含的一个方法是query。Query方法跟PHP的query函数非常类似,都接受一个SQL语句作为参数。区别是要使用箭头(-)来通过对象调用函数,并且它返回的结果是另外一个对象而不是结果集。$query = SELECT * FROM books$result = $connection-query($query);这个代码在连接对象上调用query函数,执行SQL查询,返回结果对象$result.取结果第22行在结果对象上调用方法fetchRow。与mysql_fetch_row类似,这个方法一次返回一行数据:while ($result_row = $result-fetchRow( ) echo Title: .$result_row1 . ;echo Author: .$result_row4 . ;echo Pages: .$result_row2 . ;使用一个while循环并调用fetchRow来遍历所有行,直到fetchRow返回FALSE。循环内的代码跟未使用PEAR的例子中的代码一致。关闭第30行结束数据库连接,它使用的是DB对象的disconnect方法:$connection-disconnect( );PEAR错误报告函数DB:isError会检查返回的结果是不是个错误。如果是,可以使用DB:errorMessae得到错误对应的文字描述。你需要将函数的返回值传递给DB:errorMessage作为参数。下面使用PEAR代码重写错误检查:query( $sql)echo DB:errorMessage($demoResult); elsewhile ($demoRow = $demoResult-fetchRow( )echo $demoRow2 . ;?PEAR数据库接口还提供了一个新版本叫做PEAR:MDB2。例9-6给出了使用MDB2版本重写同一个例子的代码。例9-8:使用PEAR:MDB2显示表books mysql,username = $username,password = $password,hostspec = $host,database = $database);/Create the connection as an MDB2 instance.$mdb2 = MDB2:factory($dsn);if (PEAR:isError($mdb2) die($mdb2-getMessage( );/Set the fetchmode to field associative.$mdb2-setFetchMode(MDB2_FETCHMODE_ASSOC);$query = SELECT * FROM books NATURAL JOIN authors;$result =$mdb2-query($query);if (PEAR:isError($result)die(Could not query the database:$query .$result-getMessage( );/Display the results.echo();echo TitleAuthorPages;/Loop through the result set.while ($row = $result-fetchRow( ) echo ;echo htmlentities($rowtitle) . ;echo htmlentities($rowauthor ) . ;echo htmlentities($rowpages) . ;echo();/Close the connection.$result-free( );?我们得到同样的显示结果。这个版本的PEAR数据库抽象提供了更多的函数。现在我们掌握了连接数据库的方法以及PEAR提供的各种函数。原文:Getting PHP to Talk to MySQlNow that youre comfortable using the MySQL client tools to manipulate data in the database, you can begin using PHP to display and modify data from the database. PHP has standard functions for working with the database.First, were going to discuss PHPs built-in database functions. Well also show you how to use the The PHP Extension and Application Repository (PEAR) databasefunctions that provide the ability to use the same functions to access any supported database. This type of flexibility comes from a process called abstraction. In programming interfaces, abstraction simplifies a complex interaction. It works byremoving any nonessential parts of the interaction, allowing you to concentrate on the important parts. PEARs DB classes are one such database interface abstraction. The information you need to log into a database is reduced to the bare minimum. This standard format allows you to interact with MySQL, as well as other databases using the same functions. Similarly, other MySQL-specific functions are replaced with generic ones that know how to talk to many databases. For example, the MySQL-specific connect function is:mysql_connect($db_host, $db_username, $db_password);versus PEARs DB connect function:$connection = DB:connect(mysql:/$db_username:$db_password$db_host/$db_database);The same basic information is present in both commands, but the PEAR function also specifies the type of databases to which to connect. You can connect to MySQL or other supported databases. Well discuss both connection methods in detail.In this chapter, youll learn how to connect to a MySQL server fromPHP, how to use PHP to access and retrieve stored data, and how to correctly display information to the user.The ProcessThe basic steps of performing a query, whether using the mysql command-line tool or PHP, are the same: Connect to the database. Select the database to use. Build a SELECT statement. Perform the query. Display the results.Well walk through each of these steps for both plain PHP and PEAR functions.ResourcesWhen connecting to a MySQL database, you will use two new resources. The first is the link identifier that holds all of the information necessary to connect to the database for an active connection. The other resource is the results resource. It contains all information required to retrieve results from an active database querys result set. Youll be creating and assigning both resources in this chapter.Querying the Database with PHP FunctionsIn this section, we introduce how to connect to a MySQL database with PHP. Its quite simple, and well begin shortly with examples, but we should talk briefly about what actually happens. When you try connecting to a MySQL database, the MySQL server authenticates you based on your username and password. PHP handles connectingto the database for you, and it allows you to start performing queries and gathering data immediately.As in Chapter 8, well need the same pieces of information to connect to the database: The IP address of the database server The name of the database The username The passwordBefore moving on, make sure you can log into your database using the MySQL co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论