Mysql数据库 mysql+mysqli+PDO等多种 数据库无法使用回滚问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql数据库 mysql+mysqli+PDO等多种 数据库无法使用回滚问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2241字,纯文字阅读大概需要4分钟。
内容图文
![Mysql数据库 mysql+mysqli+PDO等多种 数据库无法使用回滚问题](/upload/InfoBanner/zyjiaocheng/858/06dca56f181643b687f1630eff6528b3.jpg)
无法回滚原因MYSQL中只有【INNODB】和【BDB】类型的数据表才能支持事务处理!其他的类型是不支持的!
ALTER TABLE `这里改成您自己数据库表名` ENGINE='InnoDB';
//例如我表名是 admin
//执行下面语句 admin表就可以使用回滚功能了
ALTER TABLE `admin` ENGINE='InnoDB';
PHP Mysql回滚
<?php
/*方法一*/
/*************** transaction--1 ***************/
$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");
mysql_select_db('test',$conn);
mysql_query("set names 'GBK'"); //使用GBK中文编码;
//开始一个事务
mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");
$sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";//这条我故意写错
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res && $res1){
mysql_query("COMMIT");
echo '提交成功。';
}else{
mysql_query("ROLLBACK");
echo '数据回滚。';
}
mysql_query("END");
/*方法二*/
/**************** transaction--2 *******************/
mysql_query("SET AUTOCOMMIT=0"); //设置mysql不自动提交,需自行用commit语句提交
$sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";//这条我故意写错
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res and $res1){
mysql_query("COMMIT");
echo '提交成功。';
}else{
mysql_query("ROLLBACK");
echo '数据回滚。';
}
mysql_query("END"); //事务处理完时别忘记mysql_query("SET AUTOCOMMIT=1");自动提交
Mysqli回滚
<?php
// 假定数据库用户名:root,密码:123456,数据库:RUNOOB
$con=mysqli_connect("localhost","root","123456","RUNOOB");
if (mysqli_connect_errno($con))
{
echo "连接 MySQL 失败: " . mysqli_connect_error();
}
// 关闭自动提交
mysqli_autocommit($con,FALSE);
// 插入数据
$sql = mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN')");
$sql1 = mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
VALUES (Facebook','https://www.facebook.com/','2','USA')");//这条我故意写错
if($sql and $sql1){
// 提交事务
mysqli_commit($con);
echo '提交成功。';
}else{
//回滚事务
mysqli_rollback($con);
echo '数据回滚。';
}
// 关闭连接
mysqli_close($con);
?>
内容总结
以上是互联网集市为您收集整理的Mysql数据库 mysql+mysqli+PDO等多种 数据库无法使用回滚问题全部内容,希望文章能够帮你解决Mysql数据库 mysql+mysqli+PDO等多种 数据库无法使用回滚问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。