`

浅谈 PHP-MySQL, PHP-MySQLi, PDO 的差异

    博客分类:
  • PHP
 
阅读更多

http://blog.roga.tw/2010/06/%E6%B7%BA%E8%AB%87-php-mysql-php-mysqli-pdo-%E7%9A%84%E5%B7%AE%E7%95%B0/

 

首先两个函数都是用来处理DB 的。

首先, mysqli 连接是永久连接,而mysql是非永久连接。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。

其次,mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。具体查看  http://cn.php.net/mysqli

应用比较多的地方是 mysqli的事务。

 

比如下面的示例:

$mysqli  =  new  mysqli( 'localhost' , 'root' , '' , 'DB_Lib2Test' );  

$mysqli ->autocommit(false); //开始事物

$mysqli ->query( $sql1 );  

$mysqli ->query( $sql2 );

if (! $mysqli ->errno)

{     

$mysqli ->commit();     echo   'ok' ;   }else {    echo   'err' ;     $mysqli ->rollback();  

}  

$mysqli = new mysqli('localhost','root','','DB_Lib2Test');

$mysqli->autocommit(false);//开始事物

$mysqli->query($sql1);

$mysqli->query($sql2);

if(!$mysqli->errno)

{

$mysqli->commit(); echo 'ok'; }else{ echo 'err'; $mysqli->rollback();

}
 

 

分享到:
评论

相关推荐

    php-7.4.33-centos7下编译,含libonig.so.5及libicu*.so.50

    ./configure --prefix=/opt/php --enable-static=yes --enable-fpm --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-curl --with-freetype-dir --...

    PHP-MySQLi-Database-Class, 一个使用 MySQLi 和预处理语句的PHP MySQL类的包装器.zip

    PHP-MySQLi-Database-Class, 一个使用 MySQLi 和预处理语句的PHP MySQL类的包装器 $v ) 和数组($k = > array ($v ,$v))中的结果。 $user = $db->map (\'login\')->ObjectBuilder()->getOne (\'users\', \'login

    宝塔PHP7+安装mysql拓展

    宝塔 PHP7+安装 mysql拓展 包括资源文件和安装方法 2.解压后并使用phpize工具初始化(phpize一般在php安装目录/bin/下面) 在扩展解压后的文件夹里执行下面命令 /www/server/php/74/bin/phpize 3.进行configure ./...

    Laravel开发-laravel-eloquent-mysqli

    Laravel开发-laravel-eloquent-mysqli Laravel 5.4高级数据库的mysqli驱动程序(连接器)

    “银河麒麟桌面操作系统V10 (SP1)”下arm64架构的apache2的php7.1模块

    构建命令: ./configure --with-apxs2=/usr/bin/apxs --with-gd --enable-mbstring --enable-mysqlnd --enable-simplexml --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-curl 提示: 没有 --with-freetype-...

    php-5.6.37.tar.gz下载及php5.6源码安装说明

    --with-pdo-mysql=mysqlnd\ --enable-opcache\ --enable-pcntl\ --enable-mbstring\ --enable-soap\ --enable-zip\ --enable-calendar\ --enable-bcmath\ --enable-exif\ --enable-ftp\ --enable-intl\ ...

    PDO和mysqli的区别

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

    php-7.1.29.tar.gz.zip

    --with-pdo-mysql=mysqlnd \ --with-zlib-dir \ --with-pdo-sqlite \ --with-readline \ --enable-session \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --enable-sysvmsg \ --enable-...

    计算机后端-PHP视频教程. php与mysql基础-sql1-mysqli_connect.wmv

    计算机后端-PHP视频教程. php与mysql基础-sql1-mysqli_connect.wmv

    PHP中的PDO函数库

    PDO 是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql 和mysqli 的函数库相比,PDO 让跨数据库的使用更具有亲和力;与ADODB 和MDB2 相比,PDO 更高效。目前而言,实现“数据库抽象层”任重而...

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

    首先发现mysqli扩展没有装(mysql扩展在PHP7中已经废弃了),原来PHP7是使用ondrej/php源安装的,可运行 apt-cache search php7 | grep mysql 居然发现没有任何的mysql扩展,包括连php-memcached扩展也没有,可实际...

    简单的php-mysql操作类.zip

    介绍一个简单的php-mysql操作类,数据库连接和设置,执行操作,显示信息,取得数据集的某个值,取得数据集的某个值,取得数据集的行数,循环读取数据,最后一次插入纪录的id值,插入任意数据,修改数据,删除数据,...

    Ajax-bootstrap-modal-ajax-mysqli.zip

    Ajax-bootstrap-modal-ajax-mysqli.zip,了解如何使用ajax在引导模式体中加载和更新mysql数据,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,...

    Dockerfile 安装php7.1镜像

    --with-pdo-mysql=mysqlnd \ --enable-mysqlnd-compression-support \ --enable-mbstring \ --enable-zip \ --enable-fpm && \ make -j 4 && make install && \ cp /tmp/...

    PHP-MySQL-ecommerce-website:基于PHP MySQL的电子商务网站代码以及Paypal付款方式

    一个完整的基于PHP / MySQL的Web应用程序: 检查数据库设置文件中的用户名/密码-管理员用户:admin /密码:1234 与Paypal集成的完整电子商务脚本。 一些功能如下: 管理员/仪表板区域 多级类别管理: -添加类别-...

    Dockerfile 安装php5.6镜像

    --with-mysql --with-mysqli \ --with-openssl --with-zlib --with-curl --with-gd \ --with-jpeg-dir --with-png-dir --with-iconv \ --enable-fpm --enable-zip --enable-mbstring && \ make -j 4 && make ...

    异步mysql客户端async-mysql-php.zip

    项目地址:https://github.com/huyanping/async-mysql-php 代码示例: try{   $async_mysql=new\Jenner\Mysql\Async();   $async_mysql->attach(   ['host'=>'127.0.0.1','user'=>'root','password'=>'...

    PHP-MySQLi-Database-Class

    Wrapper for a PHP MySQL class, which utilizes MySQLi and prepared statements.

    php-7.0.27.tar.gz

    -with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop ...

    mysql,mysqli,PDO的各自不同介绍

    普通的mysql连接肯定是会被抛弃的 因为每次都要防止sql注入的问题 而且相对来说比较慢 mysqli是在普通mysql的基础上做的一次优化 ...mysqli只统一mysql的 简单说,PDO可以实现同样的代码对不同数据库的操作,例如你从my

Global site tag (gtag.js) - Google Analytics