使用php对mysql数据库进行的操作课件_第1页
使用php对mysql数据库进行的操作课件_第2页
使用php对mysql数据库进行的操作课件_第3页
使用php对mysql数据库进行的操作课件_第4页
使用php对mysql数据库进行的操作课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、hp进阶-数据库编程 使用php的mysql扩展库操作mysql数据库mysql扩展库简介mysql扩展允许我们访问MySQL 数据库,并对MySql数据库进行curd操作。MySQLMySQL扩展库应用程序第一个使用mysql扩展库操作mysql数据库程序1、获取连接$conn=mysql_connect(localhost,root,root);if(!$conn)die(连接失败!.mysql_error();elseecho 数据库连接成功!;/2、选择数据库mysql_select_db(test);/3、设置操作编码(可以有,可以不有,建议有)mysql_query(set nam

2、es utf8);/保证我们的php程序是按照utf8码操作/4、发送指令sql(ddl,dml,dql,dtl)$sql=select * from user;$res=mysql_query($sql,$conn);/var_dump($res);/5、接收返回的结果,并处理while($row=mysql_fetch_row($res)/echo $row0-$row1-$row2-$row3-$row4;foreach($row as $key=$value)echo $value-;echo ;/6、释放资源,关闭连接mysql_free_result($res);mysql_clo

3、se($conn);idint 主键 自增长namevarchar(32)passwordvarchar(64)emailvarchar(128)ageTINYINT 补充:ddl(数据定义语句 create)dml(数据操作语言 update insert delete)dql(数据查询语句 select)dtl(数据事务语句 commit)程序详解释放资源程序运行完后,要释放程序在运行过程中,创建的那些与数据库进行交互的资源,这些对象通常是$result, 和连接数据库的资源$conn。特别是$conn,它是非常稀有的资源,用完后要及时释放,如果$conn不能及时、正确的关闭,极易导致系统

4、宕机。$conn的使用原则是尽量晚创建,尽量早的释放。尽管我们可能会看到mysql_close()函数有这样一句话:通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。参见释放资源。 但是,我仍建议大家及时关闭资源,尽快释放对mysql数据库进行CRUDmysql_query用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个函数向数据库发送增删改查语句即可。演示下面的综合练习练习:编写程序对Users表进行增删改查操作。练习:编写工具类简化CRUD操作。mysqldemo.phprequire(conn.class.php);$mys

5、ql=new sqltool();/$sql=select * from user;/$res=$mysql-execute_dql($sql);/while($row=mysql_fetch_row($res)/foreach($row as $key=$value)/echo -$value;/echo ;/$sql=insert into user (name,password,email,age) values(张三,md5(123),45);$res=$mysql-execute_dml($sql);if($res=0)echo 操作失败;else if($res=1)echo 操作

6、成功!;else if($res=2)echo 没有行数影响!;CRUD操作-create使用mysql_query方法完成数据添加操作,示例操作:$sql = insert into user(.) values(.) ; $res = mysql_query($sql);/dml操作返回的是布尔值if(!$res)echo 失败了.mysql_error(); if(mysql_affected_rows($conn)0)/mysql_affected_rows返回的是intecho 执行成功!;elseecho 没有任何记录改变;CRUD操作-update使用mysql_query()方

7、法完成数据更新操作,示例操作:$sql = “update user set name= where name=; $res = mysql_query($sql);if(!$res)echo 失败了.mysql_error(); if(mysql_affected_rows($conn)0)echo 执行成功!;else echo 没有任何记录改变;CRUD操作-retrieve(read)使用mysql_query()方法完成数据查询操作,示例操作:$sql = “select * from user where id=1”; $res = mysql_query($sql);while(

8、$row=mysql_fetch_assoc($res) foreach($row as $colVal)echo $colVal.”|”; 请编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页function show_tab_info($table_name)$conn=mysql_connect(localhost,root,root);if(!$conn)die(mysql_error();elseecho 连接成功!;mysql_select_db(test) or die(数据库接入失败!);mysql_query(set names utf8);$sql=select

9、* from user;$res=mysql_query($sql,$conn);$rows=mysql_affected_rows($conn);$cols=mysql_num_fields($res);echo ;for($i=0;$i$cols;$i+)$field_name=mysql_field_name($res,$i);echo $field_name;echo ;while($row=mysql_fetch_row($res)echo ;for($i=0;$i$cols;$i+)echo $row$i;echo ;echo ;show_tab_info(user);使用php的

10、mysqli扩展库操作mysql数据库mysqli扩展库简介mysqli扩展允许我们访问MySQL 数据库,并对MySql数据库进行curd操作。MySQLMySQLi扩展库应用程序mysql扩展库和mysqli扩展库比较:这两个都是php设计者给我们提供的扩展库都可以完成对mysql数据库的操作mysqli扩展库是mysql扩展库的改进版本mysqli扩展库比mysql扩展库效率更高,稳定性更好!特别提示: mysql扩展库和mysql数据库是两个不同的概念【图示意】第一个mysqli扩展库程序编写一个程序,这个程序从user1表中读取数据,并打印在网页中。一、搭建实验环境 :1、在mysq

11、l数据库中创建一个库,并创建user1表和插入表的数据。2、新建一个php工程。二、编写程序,在php.ini文件中启用mysqli扩展库三、建立连接($conn)(1)$mysqli=new MySQLi(“主机名”,“用户名”,“密码”,“数据库);if(mysqli_connect_error()die(ConnectError(.mysqli_connect_errno().).mysqli_connect_error();(2)$mysqli = mysqli_init();if (!$mysqli) die(mysqli_init failed);if (!$mysqli-real

12、_connect(localhost, root, root, test) die(Connect Error ( . mysqli_connect_errno() . ) . mysqli_connect_error();idint 主键 自增长namevarchar(30)passwdvarchar(50)emailvarchar(100)birthdaydateageTINYINT第一个mysqli扩展库程序四、选择数据库,设置字符集,并发送sql $mysqli-query(“set names utf8”);$res=$mysqli-query($sql)五、从代表结果集的$res中

13、取出数据,输出到页面六、断开与数据库的连接,并释放相关资源$res程序详解$mysqli-query()执行结果 程序中的$res用于代表Sql语句的执行结果。(1) 如果执行的是dml语句,则返回bool(2) 如果执行的是dql语句,则返回查询结果MySQLi_Result 结果集对象 如何从mysqli result 取出查询的结果有如下方式,我们一一分析:mysqli_result:fetch_assocmysqli_result:fetch_rowmysqli_result:fetch_arraymysqli_result:fetch_object程序详解释放资源 释放资源 void

14、 mysqli_result:free ( void )void mysqli_result:close ( void )void mysqli_result:free_result ( void )关闭连接:数据库的连接是非常稀有的资源,用完后要及时释放,如果不能及时、正确的关闭,极易导致系统宕机。使用原则是尽量晚创建,尽量早的释放。面向对象风格bool mysqli:close ( void )过程化风格bool mysqli_close ( mysqli $link )CRUD操作-create使用mysqli:query方法完成数据添加操作,示例操作:$sql = insert int

15、o user(.) values(.) ; $res = $mysqli-query ($sql);if(!$res)echo 失败.$mysqli-error;exit();if($mysqli-affected_rows0)echo 执行成功!;else echo 记录没有改变;CRUD操作-update使用mysqli:query方法完成数据更新操作,示例操作:$sql = “update user set name= where name=; $res = $mysqli-query($sql);if(!$res)echo 失败.$mysqli-error;exit();if($mys

16、qli-affected_rows0)echo 执行成功!;else echo 记录没有改变;CRUD操作-retrieve(read)使用mysqli:query方法完成数据查询操作,示例操作:$sql = “select * from user where id=1”; $res = $mysqli-query($sql);while($row= $mysqli-fetch_assoc($res) foreach($row as $colVal)echo $colVal.”|”; 完成对新闻表(学生/单词)的crud操作,实现如下需求:1、详见新闻crud操作.doc对新闻表的curd操作

17、练习(使用mysqli)mysqli扩展库增强-批量执行sql语句先看一个需求:有时,我们需要一次性执行多条sql语句,比如批量增加用户,这时如果单条单条的向mysql数据库发送sql指令,效率不高,这时可以考虑使用批量执行sql语句的方式.基本使用:$sqls=“sql语句1;sql语句2;sql语句n”;$res=mysqli:multi_query($sqls)说明: 如果$sqls 是dml 语句 ,则$res返回bool,如果$sqls 是dql语句,则$res返回多个结果集,需要使用 mysqli:store_result 和 mysqli:next_result 配合取出各个结果

18、集mysqli扩展库增强-批量执行sql语句练习1:请使用mysqli的mysqi:multi_query() 一次性添加三个用户 宋江 卢俊义 吴用练习2:请使用mysqli的mysqi:multi_query() 一次性查询并显示users表的结构 、 users表中用户id ,和用户名字mysqli扩展库增强-事务控制为什么需要事务控制,请大家先看下面的一个应用场景: 银行转账业务:表 account (id int , balance float) 什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事

19、务来处理,用以保证数据的一致性。mysqli扩展库增强-事务控制acid 原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。 隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响mysqli扩展库增强-

20、事务控制如何进行事务控制,针对上一个实际问题,提出解决方案。新的概念: 事务的提交commit 和 事务的回滚 rollback代码如下:mysqli扩展库增强-预处理 MySQLi_STMT 提出问题?现在需要向mysql数据库添加100个用户,请问如何实现? php程序执行sql语句原理分析图示mysqli扩展库增强-预处理 MySQLi_STMT使用预处理语句有什么好处?与传统的执行sql语句相比有如下优点效率高,执行速度快安全性高,可以防止sql注入 使用预处理语句快速入门案例执行dml 语句(没有结果集返回)需求: 请使用预处理的方式,向数据库添加三个用户 执行dql 语句(有结果集返回)需求: 请使用预处理的方法,查询所有id5的用户 的id,name,email,(id可能变化)需求: 请使用预处理的方式,查询id=4 密码 为 12345的用户信息 ,看看能否防止sql注入mysql

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论