PHP中mysql和mysqli的区别

首先两个函数都是用来处理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 连接是永久连接,而mysql是非永久连接” 这个观点是错误的。
php手册上讲:php5.3中的mysqli才引入了持久连接,并且php5.3没有提供一个额外的函数来实现,需要在连接参数的hostname,前面加上“p:”标记,才会建立持久连接。
  Persistent connection support was introduced in PHP 5.3 for the mysqli extension. Support was already present in PDO MYSQL and ext/mysql.
Unlike the mysql extension, mysqli does not provide a separate function for opening persistent connections. To open a persistent connection you must prepend p: to the hostname when connecting.

posted @ 2013-03-19 23:14  洒洒  阅读(2220)  评论(0编辑  收藏  举报