开源的phpmysql:第15讲mysqli扩展

上传人:shaoy****1971 文档编号:112018881 上传时间:2019-11-04 格式:PPT 页数:23 大小:1.63MB
返回 下载 相关 举报
开源的phpmysql:第15讲mysqli扩展_第1页
第1页 / 共23页
开源的phpmysql:第15讲mysqli扩展_第2页
第2页 / 共23页
开源的phpmysql:第15讲mysqli扩展_第3页
第3页 / 共23页
开源的phpmysql:第15讲mysqli扩展_第4页
第4页 / 共23页
开源的phpmysql:第15讲mysqli扩展_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《开源的phpmysql:第15讲mysqli扩展》由会员分享,可在线阅读,更多相关《开源的phpmysql:第15讲mysqli扩展(23页珍藏版)》请在金锄头文库上搜索。

1、第十二讲 MYSQLi扩展 本节内容 开启与关闭数据库链接 开启数据库查询数据表 取得结果集数据 准备语句 Mysqli简介 php的mysqli扩展被封装到一个类中,它是一种面向对象的技术 ,只能在php5和mysql4.1(或更高版本中使用),其执行速度更快,比传 统的过程化方法更高效也更方便,即使对面向对象不了解,mysqli扩展 也提供了面向过程的编程方式来供用户选择。 Mysqli优势 兼容性与维护性:mysqli扩展可以很容易地使用MySQL的新功能,所 以mysqli拥有与MySQL更高的兼容性。即使MySQL的新版本又出现 了更多功能,mysqli扩展也可以很容易的支持。 面向

2、对象:mysqli扩展已封装到一个类中,从而可使用面向对象的方 式编程。 速度和安全性:mysqli扩展执行的速度要比之前版本的mysql扩展快 了很多。mysqli扩展支持MySQL新版本的密码杂凑和验证程序,更加 提高了应用程序的安全性。 预准备语句:预准备语句可提高重复使用的语句的性能,mysqli扩展 提供了对预准备语句的支持。 调试功能:mysqli扩展进一步改进了调试功能,提高了开发效率。 Mysqli使用前提 要在PHP中使用mysqli扩展,需要在配置文php.ini中添加如下的设置: extension=php_mysqli.dll 如果配置文件中已有上述设置,确保exten

3、sion前面没有“;”,否则将 其去掉。 同时确保你的extension_dir指向同目录下的ext目录; 第一步-连接数据库 mysqli扩展第一步也是连接数据库。 面向对象风格: host_info; $mysqli-close(); ? 第一步-连接数据库 过程化风格: 第二步-更换数据库 面向对象风格: select_db(“world“); if (mysqli_connect_errno() echo “Connect failed: “, mysqli_connect_error(); exit(); $mysqli-close(); ? 第二步-更换数据库 过程化风格: 第三步

4、-执行sql操作 面向对象风格: query(“SELECT Name FROM City “) printf(“Select returned %d rows.n“, $result-num_rows); $result-close(); $mysqli-close(); ? 第三步-执行sql操作 过程化风格: 第四步-读取数据 面向对象风格(使用mysqli_result类): query(“SELECT Name FROM City “) printf(“Select returned %d rows.n“, $result-num_rows); $result-close(); $m

5、ysqli-close(); ? mysqli_result类-属性 field_count - 返回结果集中的列数 num_rows - 返回结果集中的行数 mysqli_result类-方法 close - 关闭结果集 data_seek - 移动数据指针 fetch_field - 获取结果集中列的信息 fetch_fields -获取结果集中所有列 fetch_array - 从结果集中取一行数据(返回值为索引数组或关联数组或既 有索引又有关联的数组) fetch_assoc - 从结果集中取一行数据(返回值为关联数组) fetch_object - 从结果集中取一行数据(返回值为对象

6、) fetch_row - 从结果集中取一行数据(返回值为索引数组) 第四步-读取数据 面向对象风格(使用mysqli_result类): query($query); $row = $result-fetch_array(MYSQLI_BOTH); printf (“%s (%s)n“, $row0, $row“CountryCode“); $result-close(); /或者使用$result-free(); $mysqli-close(); ? 第四步-读取数据 过程化风格: 注意: 接下来我们不再介绍过程化的方法,而且既然我们使用mysqli扩展,我们 就尽量使用面向对象的 方法

7、准备语句 因为通常情况下我们会重复执行一个查询,每次迭代使用不同的参数( 比如循环删除数据),但是使用传统的mysql_query方法和循环机制来实 现不近编写代码不方便,而且效率很差,开销很大。为解决此问题,php 引入了准备语句。有两种准备语句: 1.绑定参数 2.绑定结果 下面我们通过例子来介绍他们的用法。 准备语句-绑定参数 stmt_init(); /创建准备语句的对象 /创建准备语句 if ($stmt-prepare(“SELECT District FROM City WHERE Name=?“) /绑定参数(s代表$city是字符串类型) $stmt-bind_param(“

8、s“, $city); $stmt-execute(); /执行查询 $stmt-close(); /关闭准备语句 $mysqli-close(); ? 示例说明 上页例子中可以看出准备语句绑定参数的步骤大概是: 第一步:创建对象 ($stmt = $mysqli-stmt_init(); ) 第二步:准备语句($stmt-prepare(“sql语句”),其中需要传入的参数用 ?代替。 第三步:绑定参数($stmt-bind_param(“s“, $city)。 第四步:执行($stmt-execute(); ) 第五步:关闭($stmt-close(); ) 注意:在绑定参数时方法bind

9、_param可以有任意个参数,其中第一个参 数指定了所传递参数的类型。例如: bind_param(“isdb“, $id,$name,$score,$image) 代表$id为int型,$name为字符串型,$score为double型,$image为二 进制型。 准备语句-绑定结果 stmt_init(); /创建准备语句 if ($stmt-prepare(“SELECT code,name FROM City “) $stmt-execute(); /执行查询 $stmt-bind_result($col1, $col2);/绑定结果 while ($stmt-fetch() /获取准

10、备语句的结果 printf(“%s %sn“, $col1, $col2); $stmt-close(); /关闭准备语句 $mysqli-close(); ? 示例说明 上页例子中可以看出准备语句绑定结果的步骤大概是: 第一步:创建对象 ($stmt = $mysqli-stmt_init(); ) 第二步:准备语句($stmt-prepare(“sql语句”) 第三步:执行($stmt-execute(); ) 第四步:绑定结果 第五步:获取结果($stmt-fetch() 第六步:关闭($stmt-close(); ) 注意:在绑定结果时方法bind_result可以有任意个参数但是要与你所查 询的列数相匹配 绑定参数和结果示例 stmt_init(); $city = “Amersfoort“; if ($stmt-prepare(“SELECT District FROM City WHERE Name=?“) $stmt-bind_param(“s“, $city); $stmt-execute(); $stmt-bind_result($district); $stmt-fetch(); printf(“%s is in district %sn“, $city, $district); $stmt-close(); $mysqli-close(); ?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号