事务好像不起作用

#1 techflag

public function index(){
$fa_newrow['sw_father_name']='江苏';
$mysql_insert_id=parent::addResultPage($fa_newrow,'sw_father');
$fa_id=$mysql_insert_id;
echo 'fa_id='.$fa_id;
$g=spClass('sw_son');
$g->query("START TRANSACTION"); // 或者是$g->query("BEGIN");

$sa_newrow['sw_son_name']='南京';
$sa_newrow['sw_father_uuid']=$fa_id;
$sa_newrow['sw_son_uuid']=1;
【'sw_son_uuid' 自动编号,我设置为1是故意制造错误】
//$mysql_insert_id=parent::addResultPage($sa_newrow,'sw_son');
$mysql_insert_id = $g->create($sa_newrow);
echo 'son_id='.$mysql_insert_id;
if( 0==$mysql_insert_id) // // create、update之类的返回false即是操作失败,也有可能是字段错误
{
$g->query("ROLLBACK"); // 出现问题,事务回滚
}else{
$g->query("COMMIT"); // 没有问题,那么事务提交。
}
}


数据表: 16917abf-c21b-4ef4-9e0f-cb77742de3a2.JPG
为什么事务没有起作用呢?
其他有的表是MyISAM引擎,是不是整个数据库都要是InnoDB引擎?

2011-03-01 15:53:33

#2 techflag

其他有的表是MyISAM引擎,是不是整个数据库都要是InnoDB引擎?

2011-03-01 15:55:21

#3 jake

事务不起作用有很多原因,首先是引擎,还有驱动类型和程序。建议试试mysqli或者pdo_mysql的驱动看看。

2011-03-01 16:47:14

#4 techflag

{:2_25:} 回复 3 jake


    mysqli这个如何使用

2011-03-01 16:57:27

#5 jake

http://speedphp.com/post/database-setting.html

2011-03-01 18:44:33