




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文文献原文及译文GETTINGPHPTOTALKTOMYSQL通过PHP访问MYSQL系别专业2015年5月14日GETTINGPHPTOTALKTOMYSQLNOWTHATYOURECOMFORTABLEUSINGTHEMYSQLCLIENTTOOLSTOMANIPULATEDATAINTHEDATABASE,YOUCANBEGINUSINGPHPTODISPLAYANDMODIFYDATAFROMTHEDATABASEPHPHASSTANDARDFUNCTIONSFORWORKINGWITHTHEDATABASEFIRST,WEREGOINGTODISCUSSPHPSBUILTINDATABASEFUNCTIONSWELLALSOSHOWYOUHOWTOUSETHETHEPHPEXTENSIONANDAPPLICATIONREPOSITORYPEARDATABASEFUNCTIONSTHATPROVIDETHEABILITYTOUSETHESAMEFUNCTIONSTOACCESSANYSUPPORTEDDATABASETHISTYPEOFFLEXIBILITYCOMESFROMAPROCESSCALLEDABSTRACTIONINPROGRAMMINGINTERFACES,ABSTRACTIONSIMPLIFIESACOMPLEXINTERACTIONITWORKSBYREMOVINGANYNONESSENTIALPARTSOFTHEINTERACTION,ALLOWINGYOUTOCONCENTRATEONTHEIMPORTANTPARTSPEARSDBCLASSESAREONESUCHDATABASEINTERFACEABSTRACTIONTHEINFORMATIONYOUNEEDTOLOGINTOADATABASEISREDUCEDTOTHEBAREMINIMUMTHISSTANDARDFORMATALLOWSYOUTOINTERACTWITHMYSQL,ASWELLASOTHERDATABASESUSINGTHESAMEFUNCTIONSSIMILARLY,OTHERMYSQLSPECIFICFUNCTIONSAREREPLACEDWITHGENERICONESTHATKNOWHOWTOTALKTOMANYDATABASESFOREXAMPLE,THEMYSQLSPECIFICCONNECTFUNCTIONISMYSQL_CONNECTDB_HOST,DB_USERNAME,DB_PASSWORDVERSUSPEARSDBCONNECTFUNCTIONCONNECTIONDBCONNECT“MYSQL/DB_USERNAMEDB_PASSWORDDB_HOST/DB_DATABASE“电子与计算机科学技术系网络工程THESAMEBASICINFORMATIONISPRESENTINBOTHCOMMANDS,BUTTHEPEARFUNCTIONALSOSPECIFIESTHETYPEOFDATABASESTOWHICHTOCONNECTYOUCANCONNECTTOMYSQLOROTHERSUPPORTEDDATABASESWELLDISCUSSBOTHCONNECTIONMETHODSINDETAILINTHISCHAPTER,YOULLLEARNHOWTOCONNECTTOAMYSQLSERVERFROMPHP,HOWTOUSEPHPTOACCESSANDRETRIEVESTOREDDATA,ANDHOWTOCORRECTLYDISPLAYRESOURCESWHENCONNECTINGTOAMYSQLDATABASE,YOUWILLUSETWONEWRESOURCESTHEFIRSTISTHELINKIDENTIFIERTHATHOLDSALLOFTHEINFORMATIONNECESSARYTOCONNECTTOTHEDATABASEFORANACTIVECONNECTIONTHEOTHERRESOURCEISTHERESULTSRESOURCEITCONTAINSALLINFORMATIONREQUIREDTORETRIEVERESULTSFROMANACTIVEDATABASEQUERYSRESULTSETYOULLBECREATINGANDASSIGNINGBOTHRESOURCESINTHISCHAPTERQUERYINGTHEDATABASEWITHPHPFUNCTIONSINTHISSECTION,WEINTRODUCEHOWTOCONNECTTOAMYSQLDATABASEWITHPHPITSQUITESIMPLE,ANDWELLBEGINSHORTLYWITHEXAMPLES,BUTWESHOULDTALKBRIEFLYABOUTWHATACTUALLYHAPPENSWHENYOUTRYCONNECTINGTOAMYSQLDATABASE,THEMYSQLSERVERAUTHENTICATESYOUBASEDONYOURUSERNAMEANDPASSWORDPHPHANDLESCONNECTINGTOTHEDATABASEFORYOU,ANDITALLOWSYOUTOSTARTPERFORMINGQUERIESANDGATHERINGDATAIMMEDIATELYASINCHAPTER8,WELLNEEDTHESAMEPIECESOFINFORMATIONTOCONNECTTOTHEDATABASETHEIPADDRESSOFTHEDATABASESERVERTHENAMEOFTHEDATABASETHEUSERNAMETHEPASSWORDBEFOREMOVINGON,MAKESUREYOUCANLOGINTOYOURDATABASEUSINGTHEMYSQLCOMMANDLINECLIENTFIGURE91SHOWSHOWTHESTEPSOFTHEDATABASEINTERACTIONRELATETOTHETWOTYPESOFRESOURCESBUILDINGTHESELECTSTATEMENTHAPPENSBEFORETHETHIRDFUNCTIONCALL,BUTITISNOTSHOWNITSDONEWITHPLAINPHPCODE,NOTAMYSQLSPECIFICPHPFUNCTIONFIGURE91THEINTERACTIONBETWEENFUNCTIONSANDRESOURCESWHENUSINGTHEDATABASEINCLUDINGDATABASELOGINDETAILSYOUREGOINGTOCREATEAFILETOHOLDTHEINFORMATIONFORLOGGINGINTOMYSQLSTORINGTHISINFORMATIONINAFILEYOUINCLUDEISRECOMMENDEDIFYOUCHANGETHEDATABASEPASSWORD,THEREISONLYONEPLACETHATYOUNEEDTOCHANGEIT,REGARDLESSOFHOWMANYPHPFILESYOUHAVETHATACCESSTHEDATABASEYOUDONTHAVETOWORRYABOUTANYONEDIRECTLYVIEWINGTHEFILEANDGETTINGYOURDATABASELOGINDETAILSTHEFILE,IFREQUESTEDBYITSELF,ISPROCESSEDASAPHPFILEANDRETURNSABLANKPAGETROUBLESHOOTINGCONNECTIONERRORSONEERRORYOUMAYGETISINFORMATIONTOTHEUSERTHEPROCESSTHEBASICSTEPSOFPERFORMINGAQUERY,WHETHERUSINGTHEMYSQLCOMMANDLINETOOLORPHP,ARETHESAMECONNECTTOTHEDATABASESELECTTHEDATABASETOUSEBUILDASELECTSTATEMENTPERFORMTHEQUERYDISPLAYTHERESULTSWELLWALKTHROUGHEACHOFTHESESTEPSFORBOTHPLAINPHPANDPEARFUNCTIONSFATALERRORCALLTOUNDEFINEDFUNCTIONMYSQL_CONNECTINCPROGRAMFILESAPACHESOFTWAREFOUNDATIONAPACHE22HTDOCSDB_TESTPHPONLINE4THISERROROCCURSBECAUSEPHP5XFORWINDOWSWASDOWNLOADED,ANDMYSQLSUPPORTWASNOTINCLUDEDBYDEFAULTTOFIXTHISERROR,COPYTHEPHP_MYSQLDLLFILEFROMTHEEXT/DIRECTORYOFTHEPHPZIPFILETOCPHP,ANDTHENCWINDOWSPHPINIMAKESURETHEREARETWOLINESTHATARENOTCOMMENTEDOUTBYASEMICOLONATTHEBEGINNINGOFTHELINELIKETHESEEXTENSION_DIR“C/PHP/EXT/“EXTENSIONPHP_MYSQLDLLTHISWILLCHANGETHEEXTENSIONTOINCLUDETHEDIRECTORYTOC/PHPANDINCLUDETHEMYSQLEXTENSION,RESPECTIVELYYOUCANUSETHESEARCHFUNCTIONOFYOURTEXTEDITORTOCHECKWHETHERTHELINESAREALREADYTHEREANDJUSTNEEDTOBEUNCOMMENTED,ORWHETHERTHEYNEEDTOBEADDEDCOMPLETELYYOULLNEEDTORESTARTAPACHE,ANDTHENMYSQLSUPPORTWILLBEENABLEDSELECTINGTHEDATABASENOWTHATYOURECONNECTED,THENEXTSTEPISTOSELECTWHICHDATABASETOUSEWITHTHEMYSQL_SELECT_DBCOMMANDITTAKESTWOPARAMETERSTHEDATABASENAMEAND,OPTIONALLY,THEDATABASECONNECTIONIFYOUDONTSPECIFYTHEDATABASECONNECTION,THEDEFAULTISTHECONNECTIONFROMTHELASTMYSQL_CONNECT/SELECTTHEDATABASEDB_SELECTMYSQL_SELECT_DBDB_DATABASEIFDB_SELECTDIE“COULDNOTSELECTTHEDATABASE“MYSQL_ERRORAGAIN,ITSGOODPRACTICETOCHECKFORANERRORANDDISPLAYITEVERYTIMEYOUACCESSTHEDATABASENOWTHATYOUVEGOTAGOODDATABASECONNECTION,YOUREREADYTOEXECUTEYOURSQLQUERYBUILDINGTHESQLSELECTQUERYBUILDINGASQLQUERYISASEASYASSETTINGAVARIABLETOTHESTRINGTHATISYOURSQLQUERYOFCOURSE,YOULLNEEDTOUSEAVALIDSQLQUERY,ORMYSQLRETURNSWITHANERRORWHENYOUEXECUTETHEQUERYTHEVARIABLENAMEQUERYISUSEDSINCETHENAMEREFLECTSITSPURPOSE,BUTYOUCANCHOOSEANYTHINGYOUDLIKEFORAVARIABLENAMETHESQLQUERYINTHISEXAMPLEISSELECTFROMBOOKSYOUCANBUILDUPYOURQUERYINPARTSUSINGTHESTRINGCONCATENATEOPERATOREXECUTINGTHEQUERYTOHAVETHEDATABASEEXECUTETHEQUERY,USETHEMYSQL_QUERYFUNCTIONITTAKESTWOPARAMETERSTHEQUERYAND,OPTIONALLY,THEDATABASELINKANDRETURNSTHERESULTSAVEALINKTOTHERESULTSINAVARIABLECALLED,YOUGUESSEDIT,RESULTTHISISALSOAGOODPLACETOCHECKTHERETURNCODEFROMMYSQL_QUERYTOMAKESURETHATTHEREWERENOERRORSINTHEQUERYSTRINGORTHEDATABASECONNECTIONBYVERIFYINGTHATRESULTISNOTFALSEWHENTHEDATABASEEXECUTESTHEQUERY,ALLOFTHERESULTSFORMARESULTSETTHESERESULTSCORRESPONDTOTHEROWSTHATYOUSAWUPONDOINGAQUERYUSINGTHEMYSQLCOMMANDLINECLIENTTODISPLAYTHEM,YOUPROCESSEACHROW,ONEATATIMEFETCHINGANDDISPLAYINGUSEMYSQL_FETCH_ROWTOGETTHEROWSFROMTHERESULTSETITSSYNTAXISARRAYMYSQL_FETCH_ROWRESOURCERESULTITTAKESTHERESULTYOUSTOREDINRESULTFROMTHEQUERYASAPARAMETERITRETURNSONEROWATATIMEFROMTHEQUERYUNTILTHEREARENOMOREROWS,ANDTHENITRETURNSFALSETHEREFORE,YOUDOALOOPONTHERESULTOFMYSQL_FETCH_ROWANDDEFINESOMECODETODISPLAYEACHROWTHECOLUMNSOFTHERESULTROWARESTOREDINTHEARRAYANDCANBEACCESSEDONEATATIMETHEVARIABLERESULT_ROW2ACCESSESTHESECONDATTRIBUTEASDEFINEDINTHEQUERYSCOLUMNORDERORTHECOLUMNORDEROFTHETABLEIFSELECTISUSEDINTHERESULTROWFETCHTYPESTHISISNOTTHEONLYWAYTOFETCHTHERESULTSUSINGMYSQL_FETCH_ARRAY,PHPCANPLACETHERESULTSINTOANARRAYINONESTEPITTAKESARESULTASITSFIRSTPARAMETER,ANDTHEWAYTOBINDTHERESULTSASANOPTIONALSECONDPARAMETERIFMYSQL_ASSOCISSPECIFIED,THERESULTSAREINDEXEDINANARRAYBASEDONTHEIRCOLUMNNAMESINTHEQUERYIFMYSQL_NUMISSPECIFIED,THENTHENUMBERSTARTINGATZEROACCESSESTHERESULTSTHEDEFAULTVALUE,MYSQL_BOTH,RETURNSARESULTARRAYWITHBOTHTYPESTHEMYSQL_FETCH_ASSOCISANALTERNATIVETOSUPPLYINGTHEMYSQL_ASSOCARGUMENTCLOSINGTHECONNECTIONASARULEOFTHUMB,YOUALWAYSWANTTOCLOSEACONNECTIONTOADATABASEWHENYOUREDONEUSINGITCLOSINGADATABASEWITHMYSQL_CLOSEWILLTELLPHPANDMYSQLTHATYOUNOLONGERWILLBEUSINGTHECONNECTION,ANDWILLFREEANYRESOURCESANDMEMORYALLOCATEDTOITMYSQL_CLOSECONNECTIONINSTALLINGPEARUSESAPACKAGEMANAGERTHATOVERSEESWHICHPEARFEATURESYOUINSTALLWHETHERYOUNEEDTOINSTALLTHEPACKAGEMANAGERDEPENDSONWHICHVERSIONOFPHPYOUINSTALLEDIFYOURERUNNINGPHP430ORNEWER,ITSALREADYINSTALLEDIFYOURERUNNINGPHP50,PEARHASBEENSPLITOUTINTOASEPARATEPACKAGETHEDBPACKAGETHATYOUREINTERESTEDINISOPTIONALBUTINSTALLEDBYDEFAULTWITHTHEPACKAGEMANAGERSOIFYOUHAVETHEPACKAGEMANAGER,YOUREALLSETUNIXYOUCANINSTALLTHEPACKAGEMANAGERONAUNIXSYSTEMBYEXECUTINGTHEFOLLOWINGFROMTHESHELLCOMMANDLINEPROMPTLYNXSOURCEHTTP/GOPEARORG/|PHPTHISTAKESTHEOUTPUTOFTHEGOPEARORGSITEWHICHISACTUALLYTHESOURCEPHPCODETOINSTALLPEARANDPASSESITALONGTOTHEPHPCOMMANDFOREXECUTIONWINDOWSTHEPHP5INSTALLATIONINCLUDESTHEPEARINSTALLATIONSCRIPTASCPHPGOPEARBATINCASEYOUDIDNTINSTALLALLTHEFILESINCHAPTER2,GOAHEADANDEXTRACTALLTHEPHPFILESTOC/PHPFROMTHECOMMANDPROMPT,ANDEXECUTETHEBATFILECREATINGACONNECTINSTANCETHEDBPHPFILEDEFINESACLASSOFTYPEDBREFERTOCHAPTER5FORMOREINFORMATIONONWORKINGWITHCLASSESANDOBJECTSWELLPRINCIPALLYBECALLINGTHEMETHODSINTHECLASSTHEDBCLASSHASACONNECTMETHOD,WHICHWELLUSEINSTEADOFOUROLDCONNECTFUNCTION,MYSQL_CONNECTTHEDOUBLECOLONSINDICATETHATWERECALLINGTHATFUNCTIONFROMTHECLASSINLINE4CONNECTIONDBCONNECT“MYSQL/DB_USERNAMEDB_PASSWORDDB_HOST/DB_DATABASE“WHENYOUCALLTHECONNECTFUNCTION,ITCREATESANEWDATABASECONNECTIONTHATISSTOREDINTHEVARIABLECONNECTIONTHECONNECTFUNCTIONATTEMPTSTOCONNECTTOTHEDATABASEBASEDONTHECONNECTSTRINGYOUPASSEDTOITCONNECTSTRINGTHECONNECTSTRINGUSESTHISNEWFORMATTOREPRESENTTHELOGININFORMATIONTHATYOUALREADYSUPPLIEDINSEPARATEFIELDSDBTYPE/USERNAMEPASSWORDHOST/DATABASETHISFORMATMAYLOOKFAMILIARTOYOU,ASITSVERYSIMILARTOTHECONNECTSTRINGFORAWINDOWSFILESHARETHEFIRSTPARTOFTHESTRINGISWHATREALLYSETSTHEPEARFUNCTIONSAPARTFROMTHEPLAINPHPTHEPHPTYPEFIELDSPECIFIESTHETYPEOFDATABASETOCONNECTSUPPORTEDDATABASESINCLUDEIBASE,MSQL,MSSQL,MYSQL,OCI8,ODBC,PGSQL,ANDSYBASEALLTHATSREQUIREDFORYOURPHPPAGETOWORKWITHADIFFERENTTYPEOFDATABASEISCHANGINGTHEPHPTYPETHEUSERNAME,PASSWORD,HOST,ANDDATABASESHOULDBEFAMILIARFROMTHEBASICPHPCONNECTONLYTHETYPEOFCONNECTIONISREQUIREDHOWEVER,YOULLUSUALLYWANTTOSPECIFYALLFIELDSAFTERTHEVALUESFROMDB_LOGINPHPAREINCLUDED,THECONNECTSTRINGLOOKSLIKETHEFOLLOWING“MYSQL/TESTTESTTEST“IFTHECONNECTMETHODONLINE6WASSUCCESSFUL,ADBOBJECTISCREATEDITCONTAINSTHEMETHODSTOACCESSTHEDATABASEASWELLASALLOFTHEINFORMATIONABOUTTHESTATEOFTHATDATABASECONNECTIONQUERYINGONEOFTHEMETHODSITCONTAINSISCALLEDQUERYTHEQUERYMETHODWORKSJUSTLIKEPHPSQUERYFUNCTIONINTHATITTAKESASQLSTATEMENTTHEDIFFERENCEISTHATTHEARROWSYNTAXISUSEDTOCALLITFROMTHEOBJECTITALSORETURNSTHERESULTSASANOTHEROBJECTINSTEADOFARESULTSETQUERY“SELECTFROMBOOKS“RESULTCONNECTIONQUERYQUERYBASEDONTHESQLQUERY,THISCODECALLSTHEQUERYFUNCTIONFROMTHECONNECTIONOBJECTANDRETURNSARESULTOBJECTNAMEDRESULTFETCHINGLINE22USESTHERESULTOBJECTTOCALLTHEFETCHROWMETHODITRETURNSTHEROWSONEATATIME,SIMILARTOMYSQL_FETCH_ROWWHILERESULT_ROWRESULTFETCHROWECHO'TITLE'RESULT_ROW1''ECHO'AUTHOR'RESULT_ROW4''ECHO'PAGES'RESULT_ROW2''USEANOTHERWHILELOOPTOGOTHROUGHEACHROWFROMFETCHROWUNTILITRETURNSFALSETHECODEINTHELOOPHASNTCHANGEDFROMTHENONPEAREXAMPLECLOSINGYOUREFINISHEDWITHTHEDATABASECONNECTION,SOCLOSEITUSINGTHEOBJECTMETHODDISCONNECTCONNECTIONDISCONNECTPEARERRORREPORTINGTHEFUNCTIONDBISERRORWILLCHECKTOSEEWHETHERTHERESULTTHATSBEENRETURNEDTOYOUISANERRORIFITISANERROR,YOUCANUSEDBERRORMESSAGETORETURNATEXTDESCRIPTIONOFTHEERRORTHATWASGENERATEDYOUNEEDTOPASSDBERRORMESSAGE,THERETURNVALUEFROMYOURFUNCTION,ASANARGUMENTHEREYOUREWRITETHEPEARCODETOUSEERRORCHECKINGQUERYSQLECHODBERRORMESSAGEDEMORESULTELSEWHILEDEMOROWDEMORESULTFETCHROWECHODEMOROW2''THERESALSOANEWVERSIONOFTHEPEARDATABASEINTERFACECALLEDPEARMDB2THESAMERESULTSDISPLAY,BUTTHEREAREMOREFUNCTIONSAVAILABLEINTHISVERSIONOFTHEPEARDATABASEABSTRACTIONLAYERTHETHESISEXPOUNDSHOWTOBUILDANEBUSINESSWEBSITEBYUSEOFSOFTWARETOOLSSUCHASPHP,DELPHIANDSOONTHEDESIGNKEEPSTOTHECLASSICLIFECYCLEOFSOFTWAREENGINEERINGWATERFALLMODELACCORDINGTOSOFTWAREANALYSIS,SOFTWAREDESIGN,SOFTWARECODEANDSOFTWAREMAINTENANCE,THEDESIGNISDIVIDEDINTONINEPROCESSESSUCHASDEFINESYSTEMATICGOAL,FEASIBILITYANALYSIS,DEMANDANALYSIS,OUTLINEDESIGN,DESIGN,SOFTWARECODE,SOFTWARETESTINDETAIL,SOFTWAREMAINTAININTHEWEBINTERFACEOFUSER,WEADOPTB/SSTRUCTUREANDWEADOPTC/STOBACKSTAGESUPPORTERMANAGEMENTLOGICLAYERTHATNEEDSDATAMININGVARIABLESAREPREFIXEDWITHADOLLARSYMBOLANDATYPEDOESNOTNEEDTOBESPECIFIEDINADVANCEUNLIKEFUNCTIONANDCLASSNAMES,VARIABLENAMESARECASESENSITIVEBOTHDOUBLEQUOTED“ANDHEREDOCSTRINGSALLOWTHEABILITYTOEMBEDAVARIABLE'SVALUEINTOTHESTRINGPHPTREATSNEWLINESASWHITESPACEINTHEMANNEROFAFREEFORMLANGUAGEEXCEPTWHENINSIDESTRINGQUOTES,ANDSTATEMENTSARETERMINATEDBYASEMICOLONPHPHASTHREETYPESOFCOMMENTSYNTAX/SERVESASBLOCKCOMMENTS,AND/ASWELLASAREUSEDFORINLINECOMMENTSTHEECHOSTATEMENTISONEOFSEVERALFACILITIESPHPPROVIDESTOOUTPUTTEXTEGTOAWEBBROWSERINTERMSOFKEYWORDSANDLANGUAGESYNTAX,PHPISSIMILARTOMOSTHIGHLEVELLANGUAGESTHATFOLLOWTHECSTYLESYNTAXIFCONDITIONS,FORANDWHILELOOPS,ANDFUNCTIONRETURNSARESIMILARINSYNTAXTOLANGUAGESSUCHASC,C,JAVAANDPERLPHPSTORESWHOLENUMBERSINAPLATFORMDEPENDENTRANGETHISRANGEISTYPICALLYTHATOF32BITSIGNEDINTEGERSUNSIGNEDINTEGERSARECONVERTED毕业论文VALUESINCERTAINSITUATIONSTHISBEHAVIORISDIFFERENTFROMOTHERPROGRAMMINGLANGUAGESINTEGERVARIABLESCANBEASSIGNEDUSINGDECIMALPOSITIVEANDNEGATIVE,OCTAL,ANDHEXADECIMALNOTATIONSFLOATINGPOINTNUMBERSAREALSOSTOREDINAPLATFORMSPECIFICRANGETHEYCANBESPECIFIEDUSINGFLOATINGPOINTNOTATION,ORTWOFORMSOFSCIENTIFICNOTATIONPHPHASANATIVEBOOLEANTYPETHATISSIMILARTOTHENATIVEBOOLEANTYPESINJAVAANDCUSINGTHEBOOLEANTYPECONVERSIONRULES,NONZEROVALUESAREINTERPRETEDASTRUEANDZEROASFALSE,ASINPERLANDCTHENULLDATATYPEREPRESENTSAVARIABLETHATHASNOVALUETHEONLYVALUEINTHENULLDATATYPEISNULLVARIABLESOFTHE“RESOURCE“TYPEREPRESENTREFERENCESTORESOURCESFROMEXTERNALSOURCESTHESEARETYPICALLYCREATEDBYFUNCTIONSFROMAPARTICULAREXTENSION,ANDCANONLYBEPROCESSEDBYFUNCTIONSFROMTHESAMEEXTENSIONEXAMPLESINCLUDEFILE,IMAGE,ANDDATABASERESOURCESARRAYSCANCONTAINELEMENTSOFANYTYPETHATPHPCANHANDLE,INCLUDINGRESOURCES,OBJECTS,ANDEVENOTHERARRAYSORDERISPRESERVEDINLISTSOFVALUESANDINHASHESWITHBOTHKEYSANDVALUES,ANDTHETWOCANBEINTERMINGLEDPHPALSOSUPPORTSSTRINGS,WHICHCANBEUSEDWITHSINGLEQUOTES,DOUBLEQUOTES,ORHEREDOCSYNTAXTHESTANDARDPHPLIBRARYSPLATTEMPTSTOSOLVESTANDARDPROBLEMSANDIMPLEMENTSEFFICIENTDATAACCESSINTERFACESANDCLASSESPHPHASHUNDREDSOFBASEFUNCTIONSANDTHOUSANDSMOREVIAEXTENSIONSTHESEFUNCTIONSAREWELLDOCUMENTEDONTHEPHPSITE,BUTUNFORTUNATELY,THEBUILTINLIBRARYHASAWIDEVARIETYOFNAMINGCONVENTIONSANDINCONSISTENCIESPHPCURRENTLYHASNOFUNCTIONSFORTHREADPROGRAMMINGFUNCTIONSARENOTFIRSTCLASSFUNCTIONSANDCANONLYBEREFERENCEDBYTHEIRNAMEDIRECTLYORDYNAMICALLYBYAVARIABLECONTAININGTHENAMEOFTHEFUNCTIONUSERDEFINEDFUNCTIONSCANBECREATEDATANYTIMEWITHOUTBEINGPROTOTYPEDFUNCTIONSCANBEDEFINEDINSIDECODEBLOCKS,PERMITTINGARUNTIMEDECISIONASTOWHETHERORNOTAFUNCTIONSHOULDBEDEFINEDFUNCTIONCALLSMUSTUSEPARENTHESES,WITHTHEEXCEPTIONOFZEROARGUMENTCLASSCONSTRUCTORFUNCTIONSCALLEDWITHTHEPHPNEWOPERATOR,WHEREPARENTHESESAREOPTIONALPHPSUPPORTSQUASIANONYMOUSFUNCTIONSTHROUGHTHECREATE_FUNCTIONFUNCTION,ALTHOUGHTHEYARENOTTRUEANONYMOUSFUNCTIONSBECAUSEANONYMOUSFUNCTIONSARENAMELESS,BUTFUNCTIONSCANONLYBEREFERENCEDBYNAME,ORINDIRECTLYTHROUGHAVARIABLEFUNCTION_NAME,INPHPPHPGAINEDSUPPORTFORFIRSTCLASSFUNCTIONSANDCLOSURESTRUEANONYMOUSFUNCTIONSARESUPPORTEDUSINGTHEFOLLOWINGSYNTAXFUNCTIONGETADDERXRETURNFUNCTIONYUSEXRETURNXYADDERGETADDER8ECHOADDER2/PRINTS“10“HERE,GETADDERFUNCTIONCREATESACLOSUREUSINGPARAMETERXKEYWORD“USE“FORCESGETTINGVARIABLEFROMCONTEXT,WHICH毕业论文,ETCFORMOREDETAILSSEELAMBDAFUNCTIONSANDCLOSURESRFCBASICOBJECTORIENTEDPROGRAMMINGFUNCTIONALITYWASADDEDINPHP3ANDIMPROVEDINPHP43OBJECTHANDLINGWASCOMPLETELYREWRITTENFORPHP5,EXPANDINGTHEFEATURESETANDENHANCINGPERFORMANCEINPREVIOUSVERSIONSOFPHP,OBJECTSWEREHANDLEDLIKEPRIMITIVETYPESTHEDRAWBACKOFTHISMETHODWASTHATTHEWHOLEOBJECTWASCOPIEDWHENAVARIABLEWASASSIGNEDORPASSEDASAPARAMETERTOAMETHODINTHENEWAPPROACH,OBJECTSAREREFERENCEDBYHANDLE,ANDNOTBYVALUEPHP5INTRODUCEDPRIVATEANDPROTECTEDMEMBERVARIABLESANDMETHODS,ALONGWITHABSTRACTCLASSESANDFINALCLASSESASWELLASABSTRACTMETHODSANDFINALMETHODSITALSOINTRODUCEDASTANDARDWAYOFDECLARINGCONSTRUCTORSANDDESTRUCTORS,SIMILARTOTHATOFOTHEROBJECTORIENTEDLANGUAGESSUCHASC,ANDASTANDARDEXCEPTIONHANDLINGMODELFURTHERMORE,PHP5ADDEDINTERFACESANDALLOWEDFORMULTIPLEINTERFACESTOBEIMPLEMENTEDTHEREARESPECIALINTERFACESTHATALLOWOBJECTSTOINTERACTWITHTHERUNTIMESYSTEMOBJECTSIMPLEMENTINGARRAYACCESSCANBEUSEDWITHARRAYSYNTAXANDOBJECTSIMPLEMENTINGITERATORORITERATORAGGREGATECANBEUSEDWITHTHEFOREACHLANGUAGECONSTRUCTTHEREISNOVIRTUALTABLEFEATUREINTHEENGINE,SOSTATICVARIABLESAREBOUNDWITHANAMEINSTEADOFAREFERENCEATCOMPILETIME中文翻译GETTINGPHPTOTALKTOMYSQL通过PHP访问MYSQL现在你已经可以熟练地使用MYSQL客户端软件来操作数据库里的数据,我们也可以开始学习如何使用PHP来显示和修改数据库里的数据了。PHP有标准的函数用来操作数据库。我们首先学习PHP内建的数据库函数,然后会学习PHP扩展和应用程序库(PEAR,PHPEXTENSIONANDAPPLICATIONREPOSITORY)中的数据库函数,我们可以使用这些函数操作所有支持的数据库。这种灵活性源自于抽象。对于编程接口而言,抽象简化了复杂的交互过程。它将交互过程中无关紧要的部分屏蔽起来,让你关注于重要的部分。PEAR的DB类就是这样一种数据库接口的抽象。你登录一个数据库所需要提供的信息被减少到最少。这种标准的格式可以通过同一个函数来访问MYSQL以及其他的数据库。同样,一些MYSQL特定的函数被更一般的、可以用在很多数据库上的函数所替代。比如,MYSQL特定的连接函数是MYSQL_CONNECTDB_HOST,DB_USERNAME,DB_PASSWORD而PEAR的DB提供的连接函数是CONNECTIONDBCONNECT“MYSQL/DB_USERNAMEDB_PASSWORDDB_HOST/DB_DATABASE“两个命令都提供了同样的基本信息,但是PEAR的函数中还指定了要连接的数据库的类型。你可以连接到MYSQL或者其他支持的数据库。我们会详细讨论这两种连接方式。本章中,我们会学习如何从PHP连接到MYSQL的服务器,如何使用PHP访问数据库中存储的数据,以及如何正确的向用户显示信息。步骤无论是通过MYSQL命令行工具,还是通过PHP,执行一个查询的基本步骤都是一样的连接到数据库选择要使用的数据库创建SELECT语句执行查询显示结果我们将逐一介绍如何用PHP和PEAR的函数完成上面的每一步。资源当连接到MYSQL数据库的时候,你会使用到两个新的资源。第一个是连接的标识符,它记录了一个活动连接用来连接到数据库所必需的所有信息。另外一个资源是结果资源,它包含了用来从一个有效的数据库查询结果中取出结果所需要的所有信息。本章中我们会创建并使用这两种资源。使用PHP函数查询数据库本节我们会介绍如何使用PHP连接MYSQL数据库。这非常简单,我们会用一些例子说明。但是之前我们应该稍微了解一下幕后发生的事情。当你试图连接一个MYSQL数据库的时候,MYSQL服务器会根据你的用户名和密码进行身份认证。PHP为你建立数据库的连接,你可以立即开始查询并得到结果。我们需要同样的信息来连接数据库数据库服务器的IP地址数据库的名字用户名密码在开始之前,首先使用MYSQL的命令行客户端确认你登录到数据库。图91显示了数据库交互过程的各个步骤和两种类型资源之间的关系。创建SELECT语句发生在第三个函数调用之前,但是在图中没有显示出来。它是通过普通的PHP代码,而不是MYSQL特定的PHP函数完成的。图91使用数据库时函数和资源之间的交互包含数据库登录细节我们先创建一个文件,用来保存登录MYSQL所用到的信息。我们建议你把这些信息放在单独的文件里然后通过INCLUDE来使用这个文件。这样一来如果你修改了数据库的密码。无论有多少个PHP文件访问数据库,你只需要修改这一个文件。注意不用担心有人会直接看到这个文件从而得到你的数据库的登录信息。如何被直接请求,这个文件会被当作PHP文件处理,返回结果是一个空白页。假设这个文件的名字叫做DB_LOGINPHP,并且它跟其他所用PHP文件放在同一个目录下。这个文件的内容如例91所示。例91设置数据库登录的配置文件模板在例92中,我们创建的文件使用跟WEB服务器放在同一台机器上的数据库,并指定的数据库的名字,用户名和密码。例92DB_LOGINPHP文件示例图92显示了如何在其他PHP文件中使用这个文件。我们会继续使用在第七章中创建的数据库。图92在多文件中重复使用登录信息例93是精简后的,用MYSQLDUMP命令得到的重建这个数据库的SQL命令。例93重建测试数据库的SQL语句DROPTABLEIFEXISTSBOOKSCREATETABLEBOOKSTITLE_IDINT11NOTNULLAUTO_INCREMENT,TITLEVARCHAR150DEFAULTNULL,PAGESINT11DEFAULTNULL,PRIMARYKEYTITLE_IDENGINEMYISAMDEFAULTCHARSETLATIN1DUMPINGDATAFORTABLEBOOKSINSERTINTOBOOKSVALUES1,'LINUXINANUTSHELL',476,2,'CLASSICSHELLSCRIPTING',256TABLESTRUCTUREFORTABLEPURCHASESDROPTABLEIFEXISTSPURCHASESCREATETABLEPURCHASESIDINT11NOTNULLAUTO_INCREMENT,USERVARCHAR10DEFAULTNULL,TITLEVARCHAR150DEFAULTNULL,DAYDATEDEFAULTNULL,PRIMARYKEYIDENGINEMYISAMDEFAULTCHARSETLATIN1DUMPINGDATAFORTABLEPURCHASESLOCKTABLESPURCHASESWRITEINSERTINTOPURCHASESVALUES1,'MDAVIS','REGULAREXPRESSIONPOCKETREFERENCE','20050215',2,'MDAVIS','JAVASCRIPT如果你在第8章中没有创建这些表,可以将例93中的代码保存成文件BACKUPSQL,然后在命令行执行命令,命令格式如下MYSQLUUSERNAMEPPASSWORDDDATABASE_NAME“MYSQL_ERROR函数MYSQL_CONNECT的参数是数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北地图绘制员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西计量检定工四级(中级工)历年参考题库典型考点含答案解析
- 烹饪面点课件
- 2025年事业单位工勤技能-安徽-安徽环境监测工二级(技师)历年参考题库典型考点含答案解析
- 2020-2025年一级注册建筑师之建筑材料与构造通关题库(附答案)
- 2025年驾驶证考试-摩托车理论考试-摩托车驾驶证(科目一)历年参考题库含答案解析(5套)
- 2025年银行金融类-金融考试-银行业专业人员初级(法规+个人贷款)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-铣工-铣工职业技能鉴定(技师)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-铁路职业技能鉴定-货运员(中级工)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-合成氨生产工-合成氨生产工职业技能鉴定(中级)历年参考题库含答案解析(5套)
- 高中生物必修二试卷加详细答案
- 珠宝首饰赔偿协议书
- 普通地质学完整版课件
- 电梯维护保养管理制度
- 城市地理学专业课详细版课件市公开课一等奖省赛课微课金奖课件
- 国际体育赛事转播协议
- 当代青年价值观与思想道德建设
- 村人大代表小组工作总结模版
- 头发头皮的养护培训课件
- 《牛羊病防治》课程标准
- 防灾减灾体系建设与优化
评论
0/150
提交评论