目前遇到的问题是
加了下面的功能后,就不能回滚,不加之前异常都是可以捕获到,然后回滚的
php版本 5.6.27
mysql版本5.5.53
新加的功能代码如下:
如果我屏蔽下边的语句,发生异常就能回滚
//上边是执行事务
$number =$a->id;//上面获取到自增逐渐
$arr=array('www.1.com','www.2.com','www.3.com');
Yii::$app->db->createCommand("
CREATE TABLE `b_{$number}` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '名称',
`domain` varchar(255) DEFAULT '' COMMENT '域名',
`is_delete` int(10) DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='b表_{$number}';
")->execute();
foreach ($arr as $k=>$v){
$data[] = '("' . 'null' . '", "' . '' . '", "' . $v . '", "' .'0'. '")';
}
$query = "INSERT INTO b_{$a->id} (id,name,domain,is_delete)VALUES" .
implode(',', $data);
$result=$connection->createCommand($query)->execute();
if(!$result){
throw new \Exception('添加失败');
}
//下边捕获异常,try catch
加了的话,不出错误,能正常提交;
如果模拟插入错误,直接抛异常的,而且不能捕获到
求高手大大解答指教。
在catch里打印错误啊 echo array_values($model->getFirstErrors())[0];exit;
代码贴全点.
代码好乱,事务处理看下这个
Yii2 事务处理
事务开始和回滚呢?