我这边遇到很奇怪的问题就是mysqli调用存储过程很简单,代码如下:
$dbc->autocommit(false);
$result=$dbc->query("call test()");
$rows=$result->fetch_array();
mysqli_free_result($result);
$dbc->commit();
pdo中才真正提出事务概念(相当java中jdbc级别),
之前的处理方式根本就没有事务,执行一条语句是直接丢给数据库处理,怎么处理是数据库的问题。
好像是不同步数据
让它自动提交,试一下。
好久没有弄PHP 了,在PHP中
1.要么用原来的 function 的方式。
2.要么就用 PDO,纯面向对象的方式处理。
PDO 是以后的趋势,在PHP 6 中有可能从核心删除function的方式调用,将它移到pcel中。
在mysqli,pdo出来之前,php中根本就没有事务概念,它完全依赖数据库的行为。
pdo中事务方面也只和java中的 jdbc 事务等同,它现在依然没有jta等事务等同的概念。
在pdo中,你可以用try/catch方式来捕捉你的程序异常(PDOException)。
这是很久以前我在phpe.net发起的一个讨论。
[code="java"]http://club.phpe.net/index.php?act=ST&f=15&t=12734&s=e3da2ca7e448a92ce2ff3fec84e2d07c[/code]