《开源的PHPmysql:第14讲MySql-扩展.ppt》由会员分享,可在线阅读,更多相关《开源的PHPmysql:第14讲MySql-扩展.ppt(24页珍藏版)》请在三一办公上搜索。
1、第十二讲MYSQL-扩展,本节内容,开启与关闭数据库链接开启数据库查询数据表数据库和字段的信息取得数据库的记录数据MySQL操作的错误处理,开启与关闭数据库链接,第一步是使用PHP函数mysql_connect()开启MySQL数据库的连结,简单的说,就是使用账号和密码登入MySQL服务器。create table student(sid int not null auto_increment,name varchar(20)not null,primary key(sid);,开启连结,在PHP程序开启MySQL数据库链接的函数是mysql_connect():$link=mysql_con
2、nect($hname,$user,$pass);函数的传回值,如果成功传回资源标识符,如果失败传回false,检查连结,只需使用if条件就可以检查是否成功开启数据库链接:if($link!=false)/MySQL数据库链接成功!程序代码的if条件检查传回值是否为false,如果不是,表示链接数据库成功。,关闭连结,不再需要存取MySQL数据库时,就可以使用mysql_close()函数释放数据库链接资源所占用的内存:mysql_close($link);如果成功关闭传回true,否则为false。,连接和关闭示例,另外一种连接方式,$link=mysql_pconnect($hname,$
3、user,$pass);函数的传回值,如果成功传回资源标识符,如果失败传回false,MySQL服务器的域名或IP地址,MySQL服务器的用户账号和密码,开启数据库查询数据表,开启MySQL服务器指定的数据库查询数据表另一种方式查询数据表,选择数据库,第二步是指定MySQL服务器需要处理的数据库,PHP提供mysql_select_db()函数:$db=mysql_select_db($dbname,$link)or die(无法开启$dbname数据库!);,数据库名称字符串,开启的数据库链接(可选参数),exit()的别名开启失败才会执行,执行数据表查询,PHP程序可以使用mysql_qu
4、ery()函数执行SQL指令的查询:$result=mysql_query($sql,$link);,SQL指令字符串,开启目前的数据库链接(可选参数),mysql_query()返回值,mysql_query()仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query()在执行成功时返回 TRUE,出错时返回 FALSE。将它视为以表格方式储存的记录资料,每一行对应一条记录,每一列是一字段,选择数据库查询示例,取得记录和域值,PHP程序可以使用mysql_result
5、()函数取得查询结果的记录和字段值$no=mysql_result($result,0,stdno);$name=mysql_result($result,0,name);/此函数不常使用推荐使用mysql_fetch_row(),mysql_fetch_array(),纪录指针从0行开始,释放结果集合占用的内存,当不再需要查询结果时,在PHP程序记得自行释放占用的记忆体,以免浪费服务器的宝贵资源PHP程序是使用mysql_free_result()函数释放占用的内存,如下所示:mysql_free_result($result);,示例,数据表和字段的信息,取得字段数、记录数、受影响行数取得
6、字段信息,取得字段数和记录数,PHP提供函数可以取得字段数和记录数,其函数的说明:mysql_num_fields($result)/返回结果集中的字段数mysql_num_rows($result)/返回结果集中的记录数mysql_affected_rows()/返回受insert、update、delete操作影响的行数,示例,;echo$num_fields Fields;?,取得数据表的记录内容,读取单笔记录的索引数组移动记录指针将记录存入结合数组使用表格分页显示数据表记录,读取单笔记录的索引数组,如同一行一行的读取文本文件内容,PHP的mysql_fetch_row()函数是一次一笔
7、记录来读取查询结果的记录数据:返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。从和指定的结果标识关联的结果集中取得一行数据并作为数组mysql_fetch_row()返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。依次调用 mysql_fetch_row()将返回结果集中的下一行,如果没有更多行则返回 FALSE。,移动记录指针,在SQL查询结果集合拥有内部记录指针(Internal Row Pointer)指向目前待读取的记录,PHP提供mysql_data_seek()函数可以移动指针到指定的记录:mysql_data_seek($result,0);,查询结
8、果集合的字段信息对象$meta,指针位置,从0开始,将记录存入关联数组,mysql_fetch_array()函mysql_fetch_array数多一个参数指定储存的数组类型:while($rows=($result,MYSQL_NUM),储存类型,储存类型,一共有3种类型:MYSQL_NUM:储存成索引数组,使用此参数时mysql_fetch_array和mysql_fetch_row用法完全一样如下:echo$rows0“;MYSQL_ASSOC:储存成以字段名为键值的关联数组。记录是使用字段名的键值存取域值:echo.$rowsstdno.“;MYSQL_BOTH:默认方式,储存成索引和结合阵列,换句话说,记录可以任意选择使用索引或字段名的键值来取得域值,