`
t225com
  • 浏览: 662095 次
文章分类
社区版块
存档分类
最新评论

Mysqli学习

 
阅读更多

mysqli扩展用来访问MySQL 4.1或更高版本提供的功能。关于mysql,详情看www.mysql.com

mysqli扩展和持久连接

持久连接支持是在PHP 5.3的mysqli扩展中被介绍的。对持久连接的支持已经表现在PDO MySQL和ext/mysql里。持久连接背后的想法是,一个客户端进程可以重复使用一个 在客户端进程和数据库之间的连接,而不是重复的被创建和销毁。这样可以减少创建新连接的消耗,因为未被使用的连接被缓存,并准备被使用。

与mysql扩展不同,mysqli不提供单独的的函数去打开持久连接。为了打开一个持久连接,你必须在连接参数hostname前面加 p: 。

持久连接的问题在于,他们可以被客户端置于一个不可预料的状态。比如,一个table lock可能被激活,接着连接意外的结束了。一个新的客户端进程重用这个持久连接,将得到同样的情况(指得到这个连接的时候,table lock就处于激活状态)。新客户端进程需要完成所有清理工作,在正常使用这个持久连接之前,这样会加重程序员的负担。

mysqli扩展的持久连接提供了内置的清理控制代码(cleanup handling code)。mysqli执行以下清理动作:

1.Rollback active transactions(活动回滚激事务)

2.Close and drop temporary tables(关闭和取消临时表)

3.Unlock table(解锁表)

4.Reset session variables(重置会话变量)

5.Close prepared statements(always happen with PHP) (关闭prepared语句,经常发生在PHP中)

6.Close handler(关闭处理程序)

7.Release lock acquired with GET_LOCK() (释放通过GET_LOCK()获得的锁)

这确保持久连接在从连接池获得的时候是clean状态(初始状态clean)

mysqli扩展自动做这个清理工作,通过调用C-API函数mysql_change_user()

自动清理特性有好处也有坏处。好处是程序员不用担心自己写清理代码,因为mysqli会自动调用。但是,坏处是哪些代码可能有点慢,因为这段清理代码每次都要运行,当从连接吃返回一个连接时。

可以在编译PHP时加上MYSQLI_NO_CHANGE_USER_ON_PCONNECT来关掉自动清理代码。

note:mysqli扩展支持持久连接,通过mysql native driver或者mysql client library。


预定义常量,编译选项,参照:http://www.php.net/manual/en/mysqli.constants.php


这里有几个类:

MySQLi,表示一个PHP和Mysql之间的连接,详情:http://www.php.net/manual/en/class.mysqli.php

MySQLi_STMT,表示一个prepared语句,详情:http://www.php.net/manual/en/class.mysqli-stmt.php

MySQLi_Result,表示一个从数据库查询获得的结果集,详情:http://www.php.net/manual/en/class.mysqli-result.php

MySQLi_Driver,mysqli驱动,详情:http://www.php.net/manual/en/class.mysqli-driver.php

MySQLi_Warning,表示一个mysql警告,详情:http://www.php.net/manual/en/class.mysqli-warning.php


最后有一些弃用的函数:http://www.php.net/manual/en/ref.mysqli.php

分享到:
评论

相关推荐

    PDO和mysqli的区别

    PDO和mysqli的区别描述,很好的资料啊,推荐大家下载学习。

    php缓存数据功能的mysqli类.zip

    介绍php缓存数据功能的mysqli类,若框架中使用__autoload(),可以不用加载文件,需要的朋友可以学习参考,如果小伙伴们有更好的方案可以拿过来与我们一起学习分享。

    Mysqli基础知识

    相信原来在开始学习php的时候,很多人使用的数据库...学习mysqli扩展势在必行了。  相对于mysql扩展,mysqli扩展支持面向对象和面向过程两种方式,支持预处理,支持事务处理,而且速度比mysql速度更快。本篇将主要介绍

    PHP中mysqli_get_server_version()的实例用法

    本篇文章介绍了php中mysqli_get_server_version()方法的定义和用法,希望对正在学习MySQL和PHP的小伙伴有帮助! 定义和用法 mysqli_get_server_version() 函数将 MySQL 服务器版本作为整数返回。 MySQL 服务器版本将...

    PHP以mysqli方式连接类完整代码实例

    主要介绍了PHP以mysqli方式连接类完整代码实例,对于学习和了解mysqli都有很大的帮助,需要的朋友可以参考下

    PHP使用PDO、mysqli扩展实现与数据库交互操作详解

    在我们开发php时,可能有人已经学习了php数据库的连接交互,也可能正准备学习。如今,按照php的发展趋势,mysql扩展已经停止开发,在以后的发展中可能被淘汰,如mysql->query(),mysql->connect()等以后可能就无法...

    PHP使用Mysqli类库实现完美分页效果的方法

    本文实例讲述了PHP使用Mysqli类库实现完美分页效果的方法。分享给大家供大家参考,具体如下: 本篇文章是基于的是我的上篇文章《PHP数据库操作之基于Mysqli的数据库操作...建议:您在看本篇文章之时,请确保您已学习过

    php+mysqli实现将数据库中一张表信息打印到表格里的方法

    需要学习基础知识。代码如下: 复制代码 代码如下:<?php $mysqli = new MySQLi(“localhost”,”root”,”123456″,”liuyan”); if(!$mysqli){  die($mysqli->error); } function showTable($mysqli,$table_...

    [PHP 教学] 30. 利用PHP读取MySQL数据库并显示出数据(mysqli)

    [PHP_教學][Laravel][WordPress]_#30._利用PHP讀取MySQL資料庫並顯示出資料(mysqli)

    PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解

    在学习1. 开启PHP的API支持 (1)首先修改您的php.ini的配置文件。 查找下面的语句: ;extension=php_mysqli.dll 将其修改为: extension=php_mysqli.dll (2)重新启动Apache/IIS,即可。 (3)说明:PHP需要...

    mysqli扩展无法在PHP7下升级问题的解决

    主要给大家介绍了关于mysqli扩展无法在PHP7下升级问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP7具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    新手学习,php7中mysql数据库操作类实例,非常清晰易懂

    新手学习,php7中mysql数据库操作类实例,非常清晰易懂

    php-ajax异步CURD操作

    博客内资源案例文件,提供下载链接用途,仅供学习使用

    class-db-mysli:这是一个类,允许您使用mysqli对象连接到数据库系统

    用作曲家安装如果使用作曲家,则可以运行命令来克隆此项目 composer require luudoanh/class-db-mysqli初始化通过以下方式初始化基类 <?phpuse App \ Mysql ;$ dbObject = new MysqlConnection ( 'hostname' , '...

    基于PHP的校园二手交易系统,是PHP的课程设计作业.zip

    基于PHP、MySQL等技术构建的web系统,框架,PHP学习,课程设计作业,可用于毕业设计,源码项目,可直接运行,实测! 基于PHP、MySQL等技术构建的web系统,框架,PHP学习,课程设计作业,可用于毕业设计,源码项目,...

    php学习笔记

    mysqli扩展库 69 一.查询数据库中的表 69 二.释放资源的方式 69 三.增删该查类 69 四.预编译 70 mail 71 ZendFramework 73 快速体验 73 修改数据 74 增加数据 74 查询数据 74 memcached 76 telnet操作 ...

    php学习笔记之面向对象编程

    复制代码 代码如下:<?phpclass db {  private $mysqli; //数据库连接 private $options; //SQL选项 private $tableName;... } private function db() { $this->mysqli = new mysqli ( ‘localhost’,

    php excel导入导出,php导入mysql,mysql 数据导出为excel

    这个项目使用 PHPExcel,一个纯粹内置的库,一个带前端样式的小实例,可用于学习和在项目中实用。 教程 1.导入数据库文件sql.sql文件 2.修改index.php中$connect = mysqli_connect("localhost", "root", "root", ...

    MySQL编程技巧·编程和数据库管理篇

    以及SQL语法、工具、选项、API应用指南,最大限度地帮助读者更快地学习和掌握MySQL数据库系统的设计和使用。本书覆盖了MySQL 5.0,讨论了新的程序设计接口(如PHP 5里的mysqli)和新的系统管理工具。

Global site tag (gtag.js) - Google Analytics