您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > php与Mysql连接
LOGOPHP连接MySQL本章目标PHP基础1建立一个基本连接2发送SQL语句3检索查询结果4错误处理函数56PHP与MySQL数据库web数据库架构建立一个连接选择数据库发送SQL语句检索查询结果关闭数据库连接错误处理函数web数据库架构在我们前面使用PHP的过程中,使用了普通文件来存储与检索数据,现在,在已经使用了MySQL数据库后,我们可以通过基于web的前台来连接该数据库。为了更好地了解PHP与数据库的连接,先简单地介绍数据库架构的工作原理。如图所示:(步骤说明见下页)浏览器服务器PHP引擎MySQL数据库123456Web数据库的基本结构步骤说明:从web查询数据的基本步骤:1.在任何用于从Web访问数据库的脚本中,都应该遵循以下这些步骤。2.检查并过滤来自用户的数据。3.建立一个适当的数据库连接。4.查询数据库5.获取查询结构6.将结果显示给用户。建立一个连接mysql_connect--打开一个到MySQL服务器的连接语法格式:resourcemysql_connect(主机,用户名,密码)返回类型:如果成功则返回一个MySQL连接标识,失败则返回FALSE。参数说明:MySQL的主机名可同时加端口,如:‘localhost:3306’。还有数据库的用户名与密码。一旦脚本结束,到服务器的连接就会被关闭。除非之前已经调用了mysql_close()来关闭它。实例:?php$link=mysql_connect(“localhost”,”root”,””);if($link!=false){echo“连接成功”.p;}else{echo“与本地端Mysql服务器连接失败”;}?选择数据库mysql_select_db--选择MySQL数据库语法格式:boolmysql_select_db(数据库名[,连接标识符])返回类型:如果成功则返回TRUE,失败则返回FALSE。说明:数据库名为用户要操作的数据库,类似于我们通过命令行界面中使用的“SQLuse数据库名;”。如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用mysql_connect()来尝试打开一个并使用之。发送SQL语句mysql_query--发送一条MySQL查询语法格式:resourcemysql_query(SQL语句[,连接标识符])返回类型:如果成功则返回执行结果,失败则返回FALSE。说明:此函数只是扮演一种传递的角色,而不是主要的存取指令操作。由于php并不是mysql的内建语法,所以它无法对mysql的所有资料作任何的变更操作,必须使有sql指令才能达到存取的应用。mysql_query函数可以传递各种sql语法,包含DDL、DML、QUERY。mysql_db_query--发送一条MySQL查询语法格式:resourcemysql_db_query(数据库名,SQL语句[,连接标识符])返回类型:如果成功则返回执行结果,失败则返回FALSE。说明:此函数选择一个数据库并在其上执行SQL语句。与mysql_query函数不同的是有了选择数据库的功能。注意mysql_db_query函数不会切换回先前连接到的数据库。换句话说,不能用此函数临时在另一个数据库上执行sql查询,只能手工切换回来。建议用户可在sql查询中使用database.table语法来替代此函数。实例:?php//建立数据库连接$link=mysql_connect(localhost,root,);mysql_select_db(“mysql”,$link);//选择数据库$sql=select*fromuser;//定义MySQL指令$Send=mysql_query($sql);//发送并执行SQL指令echo$Send;//输出结果,(资源)//或者如下://$Send=mysql_db_query(mysql,$sql,$link);//echo$Send;?检索查询结果mysql_fetch_row--从结果集中取得一行作为枚举数组语法格式:arraymysql_fetch_row(resourceresult)返回类型:返回根据所取得的行生成的数组,如果没有更多行则返回FALSE。说明:mysql_fetch_row()从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从0开始。依次调用mysql_fetch_row()将返回结果集中的下一行,如果没有更多行则返回FALSE。实例:?php//建立数据库连接$link=mysql_connect(localhost,root,);mysql_select_db(“mysql”,$link);//选择数据库$sql=select*fromuser;//定义MySQL指令$Send=mysql_query($sql);//发送并执行SQL指令while($row=mysql_fetch_row($Send)){foreach($rowas$v)echo“$v”;//数据输出echo“br”;}?mysql_fetch_array--从结果集中取得一行作为关联数组,或数字数组,或二者兼有语法格式:arraymysql_fetch_array(查询结果指针[,数组储存型态常数])返回类型:返回根据从结果集取得的行生成的数组,如果没有更多行则返回FALSE。说明:mysql_fetch_array()是mysql_fetch_row()的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。数组储存型态常数共有三种:MYSQL_ASSOC:关联数组MYSQL_NUM:索引数组MYSQL_BOTH:两者共用(默认值)实例:?php$Link_State=mysql_connect(localhost,root,);//定义MySQL指令参数$SQL_String=SELECT*fromuser;//选取user表//开启资料库,传递查询指令$Send=mysql_db_query(“mysql”,$SQL_String);//取得所在栏位整笔资讯$Field_Data=mysql_fetch_array($Send,SQL_BOTH);//利用foreach叙述输出阵列foreach($Field_Dataas$name=$value)echo$name:$valuebr;?取得栏位数与记录数mysql_num_fields()与mysql_num_rows()函数可通过资料表传递回来的查询结果指针,来取得其中所有的栏位数与记录数。用法:mysql_num_fields(查询结果指针)取得结果集中字段的数目。mysql_num_rows(查询结果指针)取得结果集中行的数目。mysql_fetch_field--从结果集中取得列信息并作为对象返回语法格式:objectmysql_fetch_field(查询结果指针,栏位位置)返回类型:返回一个包含字段信息的对象。对象的属性为:•name-列名•table-该列所在的表名•max_length-该列最大长度•type-该列的类型•unsigned-1,如果该列是无符号数•……注:本函数返回的字段名是区分大小写的。?php$Link_State=mysql_connect(localhost,root,);//定义MySQL指令参数$SQL_String=SELECT*fromuser;//选取user表单//开启资料库,传递查询指令$Send=mysql_db_query(“mysql”,$SQL_String);$Field_Data=mysql_fetch_field($Send);//取得栏位资讯echo栏位名称:.$Field_Data-name.br;echo所属资料表名称:.$Field_Data-table.br;echo资料型态:.$Field_Data-type.br;echo最大字数:.$Field_Data-max_length.br;?mysql_result--取得结果数据语法格式:mysql_result(mysql传回指针,记录数,栏位名称字符串)返回类型:返回MySQL结果集中一个单元的内容.mysql_data_seek--移动内部结果的指针语法格式:boolmysql_data_seek(resourceresult_identifier,introw_number)返回类型:如果成功则返回TRUE,失败则返回FALSE。此函数将指定的结果标识所关联的MySQL结果内部的行指针移动到指定的行号。row_number从0开始。row_number的取值范围应该从0到mysql_num_rows-1。关闭数据库连接通过调用如下语句,可以释放结果集mysql_free_result--释放结果内存格式:boolmysql_free_result(resourceresult)mysql_free_result()仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。关闭数据库连接mysql_close--关闭MySQL连接格式:boolmysql_close([resourcelink_identifier])mysql_close()关闭指定的连接标识所关联的到MySQL服务器的连接。如果没有指定link_identifier,则关闭上一个打开的连接。通常不需要使用mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。?php//连接,选择数据库$link=mysql_connect(‘mysql_host’,‘mysql_user’,‘mysql_password’)ordie(‘Couldnotconnect:’.mysql_error());mysql_select_db(‘my_database’)ordie(‘Couldnotselectdatabase’);//执行SQL查询$query=‘SELECT*FROMmy_table’;$result=mysql_query($query)ordie(‘Queryfailed:’.mysql_error());……mysql_free_result($result);//释放结果集mysql_close($link);//关闭连接?错误处理函数当mysql操作发生错误时,PHP可以调用内建的错误处理函数,来传回进一步的错误资讯,错误处理函数有mysql_errno(负责传回错误代码)与mysql_error(负责传回错误讯息两种。)mysql_errno--返回上一个MySQL操作中的错误信息的数字编码intmysql_errno([resourcelink_identifier])mysql_error--返回上一个MySQL操作产生的文本错误信息stringmysql_error([resourcelink_identifier])htmlheadtitle错误处理函数使用范例/title/headbody?php$Link_State=mysql_connect(localhost,root,);//开启错误的资料库$DB_State=mysql_select_db(books,$Link_State);//使用错误处理函数echomysql_errno().:;//传回错误代码echomysql_error().“br”;//传回错误讯息?/body/html其他数据库处理函数mysql_pconnect--打开一个到MySQL服务器的持久连接mysql_create_db--新建一个
本文标题:php与Mysql连接
链接地址:https://www.777doc.com/doc-3380501 .html