版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库编程技术1本章内容掌握PHP连接MySQL函数掌握在PHP中对数据进行增删改查函数掌握如何在PHP中显示数据库信息掌握如何对数据库进行复杂的查询掌握分页显示技术2数据库编程技术PHP操纵MySql数据库建立与mysql数据库的连接PHP连接数据库的方法很简单,应用mysql_connect()函数即可。语法:$conn=mysql_connect(hostname,username,password)参数hostname:mysql服务器地址,包括:地址和端口号,默认 mysql服务器端口号为3306参数username:登录mysql数据库的用户名参数password: 用户密码如果连
2、接成功,则函数返回一个资源,为以后执行sql指令做准备例子:连接数据库选择和使用mysql数据库连接数据库成功后,就要选择所要使用的数据库了,这里使用3数据库编程技术mysql_query()函数,格式如下:mysql_query(“use db_name”);参数db_name:为要使用的数据库的名字。选择数据库还可以使用mysql_select_db()函数,格式如下:mysql_select_db(“db_name”);mysql函数是查询指令的专用函数,所有的sql语句都通过它执行,并返回结果集。 mysql_query()函数是打开数据库的专用函数。两者在使用上没有区别。例子:连接并
3、打开数据库关闭数据库在数据库操作完成后,一定要使用mysql_close()函数关闭已经打开的数据库连接。该函数可以提供一个数据库连接的标识符,在前面的例子中,这个标识符是资源变量$conn,也可以不提供数据库连接标识,那么系统将关闭前一次打开的数据库连接。4数据库编程技术当脚本结束后,PHP 引擎会自动关闭 MySQL 的连接,所以 close 你可以不用。当然,用是个好习惯。只有使用php永久连接(mysql_pconnect)才会在脚本结束后不关闭数据库连接!持久数据库连接持久连接是指在php脚本结束运行时不关闭的连接。当接收到一个持久连接的请求时,php将检查是否已经存在一个相同的持久
4、连接。所谓相同的连接是指用相同的用户名和密码到相同的主机的连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。数据库的持久连接并没有提供任何的附加功能,唯一的优势就是提高了运行效率。当mysql数据库和web服务器不在同一台服务器上时,客户端对服务器的连接请求也非常频繁,这时使用持久连接将更加的高效。5数据库编程技术在非持久连接情况下,每次处理一个页面时,都要向mysql服务器提出连接请求(即:每个php页面都要执行一次连接数据库的操作)。而持久连接将使得每个子过程,在其生命周期中只做一次连接操作(即:在连接网站到离开网站这段时间无论访问多少个页面都执行一次连接操作)。也就是说
5、,每个子过程将对服务器建立各自独立的永久连接。使用mysql_pconnect()函数可以打开一个到数据库的持久连接。该函数与mysql_connect()函数原型是一致的。注意:当连接的时候,本函数将先尝试寻找一个在同一主机上,用同样的用户名和密码已经打开的持久连接,如果找到,则返回此连接的标识而不打开新连接。当脚本执行完毕后,到mysql服务器的连接不会被关闭,此连接将保持打开状态以备后用。就是说:使用mysql_close()函数不会关闭由本函数建立的连接。6数据库编程技术发送数据库查询语句数据库连接后,就可以使用mysql_query()函数进行各种sql查询操作。resource m
6、ysql_query(string $query,resource $connect_link)该函数向指定服务器的当前活动数据库发送一条查询,服务器的连接标识由参数$connect_link指定。如果没有指定$connect_link则使用上一个打开的连接。$query参数给出一个查询字符串。查询字符串不以分号结束,其查询结果会被缓存。mysql_query()函数可以用于执行各种sql查询语句。该函数对select语句返回一个资源标识符,如果查询执行不正确则返回false。对于其他的sql语句,mysql_query()在执行成功时返回true,出错时返回false。7数据库编程技术数据查
7、询与记录行在数据库操作中,最经常的应用是对数据库的查询操作。在php中,要获取select语句查询的结果可以使用mysql_result()函数,也可以使用更为高效的记录行操作函数:mysql_fetch_row()、mysql_fetch_assoc、mysql_fetch_array()、mysql_fetch_object()等。取得结果单元、mysql_result()函数可以返回mysql结果集中一个单元的内容。mixed mysql_result(resource $result,int $row,mixed $field)参数$result是由mysql_query()函数返回的
8、结果集的资源标识。$row和$field分别指定了记录行和列(字段)。行参数是一个数字,由0开始。字段参数可以是字段的偏移量,字段名,或者是完整字段名(如:表名.字段名的格式)可选字段参数默认值为0,也就8数据库编程技术是说这将返回select语句中,字段列表中的第一个字段的值。在mysql_result()函数中,如果给出的行参数大于返回结果集的总行数,将返回false。例子:应用mysql_result()函数例子:遍历数据表取值取得记录行当作用于很大的结果集时应该考虑使用能够取得整行的函数。这些函数在一次函数调用中返回了多个单元的内容,比mysql_result()函数快得多。array
9、 mysql_fetch_assoc(resource $result);array mysql_fetch_row(resource $result);array mysql_fetch_object(resource $result);array mysql_fetch_array(resource $result,int $result_type);9数据库编程技术这些函数的行为是相似的,对于任何一个函数,在调用之后将返回结果集中的下一行记录,如果没有更多则返回false。mysql_fetch_row()函数从指定结果集$result中,取得一行数据并作为数组返回。每个结果的列存储在一
10、个数组的单元中,偏移量从0开始,字段名为“数字”。例子:应用mysql_fetch_row()函数mysql_fetch_assoc()函数从指定结果集$result中取得一行数据并作为数组返回,每个结果的列存储在一个数组的单元中,其字段名为“键名”。例子:应用mysql_fetch_assoc()函数mysql_fetch_array()函数和mysql_fetch_row()还有mysql_fetch_assoc()类似,唯一不同就是该函数可以通过参数选择返回数组的字段名是”数字”还是“键名”。10数据库编程技术$result_type参数为MYSQL_NUM时得到数字数组,为MYSQL_
11、ASSOC时得到键名数组,为MYSQL_BOTH时得到包含以上两者的数组,默认是MYSQL_BOTH 。例子:应用mysql_fetch_array()函数取得记录的行数使用mysql_num_rows()函数可以取得查询结果集中的记录的行数语法:int mysql_num_rows(resource $result);注意:该函数可以替代之前的select count(*)例子:应用mysql_num_rows()函数数据编辑在数据库中,常用的数据操作还包括:记录的增删改查影响记录的行数11数据库编程技术在使用mysql_query()函数对数据进行增删改查等操作后,可以用mysql_aff
12、ected_rows()函数获取所影响的记录行数。语法:int mysql_affected_rows(resource $connect_link);该函数返回应用insert、update、delete语句查询所影响的记录的行数。$connect_link参数是最近一次的数据库连接句柄。如果没有指定,则默认为最近一次由mysql_connect()函数打开的连接句柄。该函数并不适合用于select语句。应该使用mysql_num_rows来获得由select语句所返回的记录行数。mysql_affected_rows()函数会返回数据修改语句所影响的记录数,是一个非负整数。如果最近一次查询
13、失败的话,函数返回-1例子:应用mysql_affected_rows()函数实例12数据库编程技术注意:如果最近一次操作是没有任何条件的(即没有where子句)的delete语句,表中的所有记录都会被删除,该函数返回0。因此,要获取删除的记录数必须加上where子句,如:where 1=1 同样是可以删除所有表中数据但可以返回删除的记录数。例子:删除的记录数注意:当使用update查询时,mysql不会将原值和新值相同的列更新,这使得mysql_affected_rows()函数返回值不一定就是符合查询条件的记录数,只有真正被修改的记录数才会被返回。例子:更新的记录数返回自增的ID如果表中存
14、在自增的字段(AUTO_INCREMENT),很多情况下,需要查看由上一步insert插入语句产生的自增id号。这时可以使用mysql_insert_id()函数。13数据库编程技术语法:int mysql_insert_id(resource $connect_link);如果上一查询没有产生AUTO_INCREMENT的值,则该函数返回0如果需要保存该值,要确保在产生了值的查询之后立即调用mysql_insert_id()。例子:应用mysql_insert_id()函数注意:该函数返回的类型是int型,如果AUTO_INCREMENT字段的类型是bigint型,则该函数会出问题,需要用last_insert_id()替代!字段的相关函数int mysql_num_fields(resource $result)该函数将取得结果集中字段的数目。例子:查询字段数量14数据库编程技术Object mysql_fetch_field(resource $result,int $field_offse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智慧社区车位共享管理服务合同范本3篇
- 2024跨境教育服务合作合同
- 2025年度住宅小区车位租赁押金退还及违约责任合同4篇
- 2025年度校园窗帘设计与施工一体化服务合同3篇
- 2025年度物流金融承运商合作协议范本8篇
- 2025年度特种物品储藏安全管理合同4篇
- 2025年度工业遗产保护与拆迁补偿协议3篇
- 2025年度智慧农业监测系统采购合同4篇
- 2024版门面精装修产权转让协议
- 2025年员工辞退后债权债务处理协议3篇
- 2024版个人私有房屋购买合同
- 2025年山东光明电力服务公司招聘笔试参考题库含答案解析
- 2024爆炸物运输安全保障协议版B版
- 《神经发展障碍 儿童社交沟通障碍康复规范》
- 2025年中建六局二级子企业总经理岗位公开招聘高频重点提升(共500题)附带答案详解
- 2024年5月江苏省事业单位招聘考试【综合知识与能力素质】真题及答案解析(管理类和其他类)
- 注浆工安全技术措施
- 《食品与食品》课件
- 2024年世界职业院校技能大赛“食品安全与质量检测组”参考试题库(含答案)
- 读书分享会《白夜行》
- 2023上海高考英语词汇手册单词背诵默写表格(复习必背)
评论
0/150
提交评论