background image

PHP mysql 与 mysqli 事务使用说明

mysqli 连接是永久连接,而 mysql 是非永久连接。什么意思呢? mysql 连接每当第二次使用
的时候,都会重新打开一个新的进程,而

mysqli 则只使用同一个进程,这样可以很大程度

的减轻服务器端压力
mysqli 封装了诸如事务等一些高级操作,同时封装了 DB 操作过程中的很多可用的方法。
应用比较多的地方是

 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();

}

PHP 中,mysqli 已经很好的封装了 mysql 事务的相关操作。如下示例:

代码如下

:

 

$sql1

 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'";

$sql2

 = "update ScoreDetail  set FScore = 300 where ID= '123456'";

$sql3

 = "insert into  ScoreDetail ID,Score) values ('123456',60)";

$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 mysql 系列函数执行事务。

代码如下

: