重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
$con=mysqli_connect('localhost','root','123456','test');
创新互联基于分布式IDC数据中心构建的平台为众多户提供达州托管服务器 四川大带宽租用 成都机柜租用 成都服务器租用。
if (!$con){
exit("连接错误");
}
mysqli_set_charset($con,'utf8');
mysqli_query($con,"BEGIN");//开启事务
$sql = "sql语句1";
$sql2 = "sql语句2";
$res = mysqli_query($con,$sql);
$res1 = mysqli_query($con,$sql2);
if($res $res1){
mysqli_query($con,"COMMIT");//提交事务
echo '提交成功。';
}else{
mysqli_query($con,"ROLLBACK");//事务回滚
echo '数据回滚。';
}
mysqli_query($con,"END");
事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况。
PHP下操作mysql数据库要实现事务提交,需注意以下方面:
1, 数据库表存储引擎类型设置为innoDB。默认的mysql表采用MYISAM引擎,是不支持事务的,因此要采用以下语句变更:
mysql alter table ‘table_name’ engine=innodb;
2,PDO对象设置要设置errmode为Exception,否则第16行SQL执行出错,语句也不会跳到catch段去rollback, 而是继续向下执行直到commit。
当然可以了,事务是数据库的事务和哪个模型没有关系,需要注意的是事物开启需要在一开始使用事物就全部开启了,如果分开的话,你会发现第二个事物开启会把第一个事物给提交了。