




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
生物信息学数据库设计,第三章PHP数据库编程,2,学习内容,PHP基础PHP基本数据类型PHP条件与循环PHP字符串与正则表达式PHP数组PHP函数PHP数据库编程,3,MySQL应用基础,客户端程序和实用工具介绍myisampack:压缩MyISAM表以产生更小的只读表的一个工具mysql:MySQL命令行工具,通过交互方式输入SQL语句或从文件以批处理模式执行SQL语句。mysqlaccess:检查访问权限的主机名、用户名和数据库组合的客户端工具。mysqladmin:执行管理操作的客户端程序,用于创建或删除数据库、重载授权表、将表刷新到硬盘上及重新打开日志文件mysqlbinlog:从二进制日志读取语句的工具。mysqlcheck:表维护程序,用于检查、修复、分析及优化表。mysqldump:将MySQL数据库转储到一个文件(如SQL语句或tab分隔符文本文件)。mysqlhotcopy:数据库备份程序,可在MySQL服务器运行时快速备份MyISAM或ISAM表。mysqlimport:数据导入程序,使用LOADDATAINFILE将文本文件导入MySQL数据库的相关表中。mysqlshow:显示数据库、表、列及索引相关信息的客户端程序。perror:显示系统或MySQL错误代码含义的工具。replace:更改文件中或标准输入中字符串的实用工具。,mysql命令行工具1.调用mysql命令提示符下调用mysql:mysql-hhostname-uusername-ppassword其中hostname指定要连接的MySQL服务器的主机名,若要连接本机上的MySQL服务器,主机名可用localhost表示;username指定用户名,如root;password表示登录密码,如123456。若使用了-p选项而未指定密码,则会显示“EnterPassword:”,提示输入密码。,4,创建、显示和删除数据库1.创建数据库CREATEDATABASE|SCHEMAIFNOTEXISTSdb_namecreate_specification,create_specification.create_specification:DEFAULTCHARACTERSETcharset_name|DEFAULTCOLLATEcollation_name2.显示数据库列表SHOWDATABASESLIKEpattern3.删除数据库DROPDATABASE|SCHEMAIFEXISTSdb_name,5,表的创建与维护1.表的创建CREATETEMPORARYTABLEIFNOTEXISTStbl_name(column_definition,.)CHARACTERSETcharset_nameCOLLATEcollation_nameCOMMENTstring2.查看表信息SHOWFULLTABLESFROMdb_nameLIKEpattern3.查看列信息SHOWFULLCOLUMNSFROMtbl_nameFROMdb_nameLIKEpattern,6,4.表的修改ALTERIGNORETABLEtbl_namealter_specification,alter_specification.alter_specification:ADDCOLUMNcolumn_definitionFIRST|AFTERcol_name|ADDCOLUMN(column_definition,.)|ALTERCOLUMNcol_nameSETDEFAULTliteral|DROPDEFAULT|CHANGECOLUMNold_col_namecolumn_definitionFIRST|AFTERcol_name|MODIFYCOLUMNcolumn_definitionFIRST|AFTERcol_name|DROPCOLUMNcol_name|DROPPRIMARYKEY|RENAMETOnew_tbl_name5.表的重命名RENAMETABLEtbl_nameTOnew_tbl_name,tbl_name2TOnew_tbl_name2.6.表的删除DROPTEMPORARYTABLEIFEXISTStbl_name,tbl_name.,7,插入记录1.使用指定值插入记录INSERTLOW_PRIORITY|DELAYED|HIGH_PRIORITYIGNOREINTOtbl_name(col_name,.)VALUES(expr|DEFAULT,.),(.),.ONDUPLICATEKEYUPDATEcol_name=expr,.2.从一个表向另一个表插入记录INSERTLOW_PRIORITY|HIGH_PRIORITYIGNOREINTOtbl_name(col_name,.)SELECT.ONDUPLICATEKEYUPDATEcol_name=expr,.,8,查询记录SELECTselect_expr,.INTOOUTFILEfile_nameexport_options|INTODUMPFILEfile_nameFROMtable_referencesWHEREwhere_definitionGROUPBYcol_name|expr|positionASC|DESC,.HAVINGwhere_definitionORDERBYcol_name|expr|positionASC|DESC,.LIMIToffset,row_count|row_countOFFSEToffset1.检索未引用任何表的计算列2.检索所有行和列从一个表中检索所有行和列是SELECT语句最简单的应用。在这种情况下,在SELECT子句使用星号(*)表示所有列,并通过FROM子句指定要检索的表。,9,更改记录单表语法:UPDATELOW_PRIORITYIGNOREtbl_nameSETcol_name1=expr1,col_name2=expr2.WHEREwhere_definitionORDERBY.LIMITrow_count多表语法:UPDATELOW_PRIORITYIGNOREtbl_name,tbl_nameSETcol_name1=expr1,col_name2=expr2.WHEREwhere_definition,10,删除记录单表语法:DELETELOW_PRIORITYQUICKIGNOREFROMtbl_nameWHEREwhere_definitionORDERBY.LIMITrow_count多表语法:DELETELOW_PRIORITYQUICKIGNOREtbl_name.*,tbl_name.*.FROMtable_referencesWHEREwhere_definition或者:DELETELOW_PRIORITYQUICKIGNOREFROMtbl_name.*,tbl_name.*.USINGtable_referencesWHEREwhere_definition,11,权限管理1.设置权限GRANTpriv_type(column_list),priv_type(column_list).ONTABLE|FUNCTION|PROCEDUREtbl_name|*|*.*|db_name.*TOuserIDENTIFIEDBYPASSWORDpassword,userIDENTIFIEDBYPASSWORDpassword.REQUIRENONE|SSL|X509CIPHERcipherANDISSUERissuerANDSUBJECTsubjectWITHGRANTOPTION|MAX_QUERIES_PER_HOURcount|MAX_UPDATES_PER_HOURcount|MAX_CONNECTIONS_PER_HOURcount|MAX_USER_CONNECTIONScount2.撤销权限第一种语法:REVOKEpriv_type(column_list),priv_type(column_list).ONTABLE|FUNCTION|PROCEDUREtbl_name|*|*.*|db_name.*FROMuser,user.第二种语法:REVOKEALLPRIVILEGES,GRANTOPTIONFROMuser,user.,12,七PHP数据库编程,从根本上来说,PHP是通过预先写好的一些列函数来与MySQL数据库进行通信,向数据库发送指令、接收返回数据等都是通过函数来完成。下图给出了一个普通PHP程序与MySQL进行通信的基本原理示意图。,13,14,上图展示了PHP程序连接到MySQL数据库服务器的原理。可以看出,PHP通过调用自身的专门用来处理MySQL数据库连接的函数,来实现与MySQL通信。而且,PHP并不是直接操作数据库中的数据,而是把要执行的操作以SQL语句的形式发送给MySQL服务器,由MySQL服务器执行这些指令,并将结果返回给PHP程序。MySQL数据库服务器可以比作一个数据管理员。其他程序需要这些数据时,只需要向管理员提出请求,管理员就会根据要求进行相关的操作或返回相应的数据。,15,16,明白了PHP操作MySQL的流程,我们就很容易掌握PHP操作MySQL的相关函数。因为以上几乎每一个步骤,都有相应的函数与之对应。开发PHP数据库程序时,只需要按照流程调用相关函数,数据库操作便可轻松实现。最常用的有mysql_connect()、mysql_select_db()、mysql_query()、mysql_fetch_array()、mysql_num_rows()、mysql_close()等。,17,7.1创建数据库连接1.创建非持久连接resourcemysql_connect(stringserver,stringusername,stringpassword,boolnew_link,intclient_flags)2.创建持久连接resourcemysql_pconnect(stringserver,stringusername,stringpassword,intclient_flags)3.选择数据库boolmysql_select_db(stringdatabase_name,resourcelink_identifier)4.关闭MySQL连接boolmysql_close(resourcelink_identifier),18,mysql_connect()函数resourcemysql_connect(stringserver,stringusername,stringpassword)该函数返回类型为resource型,即资源型。三个参数分别为MySQL服务器地址、MySQL用户名、密码。这里的用户名可以用超级管理员的,也可以用用户表中存在的其他用户。如果出现下列提示:Warning:mysql_connect()function.mysql-connect:UnknownMySQLserverhost则说明MySQL服务器地址错误,可能是输入有错误,或者服务器没有启动,或者端口号不对。这时可以检查函数的第一个参数是否提供正确,MySQL是否已成功启动。,19,还有可能出现下列提示:Warning:mysql_connect()function.mysql-connect:Accessdeniedforuser这说明用户名或密码有错误。或者本帐号没有在本MySQL服务器上登陆的权限。我们这里之所以如此详细地讲解该函数,就是因为这时连接到MySQL数据库的第一步。只要这一步成功了,那么下面的所有函数便都能运行。连接到数据库是一切工作的起点。因此必须保证此步骤成功,才能继续下面的内容。,20,mysql_select_db()函数设置活动的MySQL数据库。如果成功,则该函数返回true。如果失败,则返回false。,21,$GLOBALS(Global变量)包含一个引用指向每个当前脚本的全局范围内有效的变量。$_SERVER(服务器变量)变量由web服务器设定或者直接与当前脚本的执行环境相关联。$_GET(HTTPGET变量)经由URL请求提交至脚本的变量。$_POST(HTTPPOST变量)经由HTTPPOST方法提交至脚本的变量。,22,$_COOKIE(HTTPCookies)经由HTTPCookies方法提交至脚本的变量。$_FILES(HTTP文件上传变量)经由HTTPPOST文件上传而提交至脚本的变量。$_ENV(环境变量)执行环境提交至脚本的变量。$_REQUEST(Request变量)经由GET,POST和COOKIE机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照php.ini中的variables_order配置指示来定义$_SESSION(Session变量)当前注册给脚本会话的变量。,23,为了避免访问MySQL数据库时出现乱码现象,对数据库连接文件进行修改,即在PHP代码块末尾添加以下语句:mysql_query(SETNAMESgb2312);还应当把PHP页的字符集设置为简体中文,这可以通过设置文件首部的标记来实现,代码如下:,24,在网页的数据传递中不外乎两种方式,一种是接收表单数据(也称为POST方法),另一种是URL附加数据(也称为GET方法)。代码诸如“5-2.php?show_tag=1boolmysql_close(resourcelink_identifier)本函数只有一个可选参数link_identifier。此参数表示要关闭的连接的ID。也就是mysql_connect()函数执行成功后返回的一个连接标记。参数为空时表示关闭当前连接。该函数返回一个布尔型结果。当关闭成功时返回true,关闭失败是返回false。,32,mysql_close()函数,33,3.获取记录集的行数和列数用mysql_num_rows()函数可以取得记录集中包含的行数:intmysql_num_rows(resourceresult)用mysql_num_fields()函数可以取得记录集中包含的字段数目:intmysql_num_fields(resourceresult)4.获取列信息objectmysql_fetch_field(resourceresult,intfield_offset),34,7.3分页显示记录集1.通过编程实现分页显示对于MySQL数据库,分页显示记录集可以通过在SELECT语句中添加LIMIT子句指定要显示的起始记录和终止记录来实现,在一个页面中显示的记录构成一个记录组。通过添加记录集导航条可以在不同记录组之间移动,也可以通过记录计数器来显示总页数、当前页号及记录总数等信息。,35,7.4创建搜索/结果页为了给动态网站添加搜索功能,通常需要创建一个搜索页和一个结果页。在搜索页中,访问者通过HTML表单输入搜索参数并将这些参数传递给服务器上的结果页,由结果页获取搜索参数,连接到数据库并根据搜索参数对数据库进行查询,创建记录集并显示其内容。在某些情况下,也可以把搜索页和结果页合并在一起。,36,7.5通过编程实现添加记录连接到MySQL服务器并选择要访问的数据库。向MySQL服务器发送一个SETNAMESgb2312语句,保证中文字符得到正确处理。通过预定义数组$_POST获取用户通过表单提交的数据,并将这些表单数据应用于INSERTINTO语句中。向MySQL服务器发送一条INSERTINTO语句,从而实现新记录的添加。添加新记录后,可通过调用mysql_affected()函数获取被插入的记录行数:intmysql_affected_rows(resourcelink_identifier),37,7.6快速生成记录更新页一个记录更新页包括以下三个构造模块:用于从数据库表中检索记录的过滤记录集;允许用户修改记录数据的HTML表单;用于更新数据库表的“更新记录”服务器行为。,38,通过主/详细页集合实现记录的选择和更新,在主页中通过链接选择要更新的记录,通过URL参数向详细页传递要更新记录的标识,在详细页中获取该记录标识并据此来检索要更新的记录集,将各个表单控件绑定到相关的记录字段上。有时也将主页和详细页合并在一起。当提交表单时,用预定义数组变量$_POST获取表单变量的值,把这些值作为字段的新值用于UPDATE语句。创建数据库连接,设置字符集,并通过调用mysql_query()函数来执行UPDATE语句以实现记录更新。执行UPDATE语句后,通过调用mysql_affected_rows()来获取被更新的记录行数。这里需要特别指出的是,如果一行记录中的所有字段值都没有发生改变,则MySQL不会执行更新操作。,39,7.7通过编程实现记录删除连接到MySQL服务器并选择要访问的数据库。编写一个DELETE语句,并通过WHERE子句来指定要删除哪些记录;通常是列出一个记录列表,让用户通过超链接来选择要删除的记录。若要删除多条记录,则可以在记录列表为每行记录添加一个复选框。当用户单击提交按钮时,通过调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025能源集团所属铁法能源公司招聘45人笔试参考题库附带答案详解
- 2025湖南高速养护工程有限公司招聘劳务派遣员工55人(长期)笔试参考题库附带答案详解
- 卸车人员安全培训记录课件
- 2025广东韶关市曲江区国有资产投资经营有限公司招聘驾驶员1人笔试参考题库附带答案详解
- 2025年江西省水投江河信息技术有限公司社会招聘2人笔试参考题库附带答案详解
- 2025年山西大地环境投资控股有限公司所属企业社会招聘79人笔试参考题库附带答案详解
- 2025年中国石油集团昆仑资本有限公司公开招聘正式启动笔试参考题库附带答案详解
- 2025年中国出口信用保险公司浙江分公司校园招聘1人笔试参考题库附带答案详解
- 2025国家电投福建公司招聘1人(总经理)笔试参考题库附带答案详解
- 2025四川华芯鼎泰精密电子有限公司招聘产品设计工程师等岗位34人笔试参考题库附带答案详解
- YC/Z 550-2016卷烟制造过程质量风险评估指南
- 工程水文第3章课件
- GB/T 4032-2013具有摆轮游丝振荡系统的精密手表
- GB/T 34875-2017离心泵和转子泵用轴封系统
- GB/T 21063.4-2007政务信息资源目录体系第4部分:政务信息资源分类
- GA/T 1081-2020安全防范系统维护保养规范
- 02药物不良反应adr课件
- 施工项目成本管理课件
- 文物建筑保护修缮专项方案
- 营销与2008欧锦赛ktv渠道方案
- 故障录波器课件
评论
0/150
提交评论