导航:首页 > 编程语言 > phpmysql事务回滚

phpmysql事务回滚

发布时间:2022-04-26 22:10:43

㈠ 哪位能详细谈谈php在MySQL中rollback的使用方法。

好像不支持事务回滚 mysql Max版支持 mysql_query('BEGIN');//开始事务 mysql_query('..........');//中间执行其他sql语句 mysql_query('COMMIT');//成功后提交事务 //mysql_query('ROLLBACK');//失败后回滚 上面不是php代码吗 就是用mysql_query执行而已 在当前mysql中虽然出现了事务的支持,但它还很不成熟,所以,呵呵,先观望事务吧,采取其他手段达到事务的效果 比如你想删除或更新一些记录,你可以创建一个临时表或者使用预先建立的备份表,将要将要操作的数据备份下来,当其他操作失败时将这些数据恢复回去。当然实际情况可能更复杂一些。这样做看起来很麻烦,而且效率值得怀疑,不过需要事务处理的地方应该不会很多,所以麻烦一次两次还是可以忍受的。 事务处理本身就不是一个高效的、百分百安全的手段,我们完全可以通过优化表的结构、编写有效的脚本而避免使用事务。关注我也关注

㈡ php mysql事务能解决什么问题

1、用begin,rollback,commit来实现
begin 开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用set来改变mysql的自动提交模式
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
来实现事务的处理。

㈢ php关于mysql数据库简单事务回滚问题

$sql2 没发现错误 执行成功。

这个可以分段验证
直接 print_r($r2) 看是否真的有SQL错误
另外 !$r1 这种写法是否可以判断错误?
你 $r2 如果输出错误 是否是 $r2 === false ? 也许是其他?
用 var_mp 查看下

㈣ thinkphp mysql 更新数据遇到这样的问题该如何解决

ThinkPHP事务回滚示例如下:
$m=D('YourModel');//或者是M();
$m2=D('YouModel2');
$m->startTrans();//在第一个模型里启用就可以了,或者第二个也行
$result=$m->where('删除条件')->delete();
$result2=m2->where('删除条件')->delete();
if($result && $result2){
$m->commit();//成功则提交
}else{
$m->rollback();//不成功,则回滚
}

㈤ php 怎么使用Mysql事务实例代码

$con=mysqli_connect('localhost','root','123456','test');
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 事务无法回滚 rollback不起作用

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理,其他的类型是不支持的.
你可以检查下你的数据库用的什么引擎

㈦ PHP中执行MYSQL事务解决数据写入不完整等情况

近来稍有时间研究了下MYSQL中的事务操作,在很多场合下很是适用,譬如在注册的时候需要初始化很多张关联表的时候,问答回复的时候需要至少同时操作两张表,这些都会在某些时候只能成功更新一张表,而另外的SQL语句出现错误,正常的操作会导致初始化了一张表
,其他的都木有能初始化,这个时候就会导致用户表里的用户信息已经执行插入,导致提示注册失败,但是用户已经注册了部分信息,这个时候需要程序员去数据库删除相应的数据是一个比较不好的事情。
因此这边考虑使用事务,事务可以进行模拟SQL操作,当所有的SQL都操作成功的时候才进行SQL操作,只要有一个操作失败就回滚当前事务的所有SQL操作,避免出现上面描述中出现的数据写入不完整等情况。
下面是鄙人写的一小段代码,欢迎大家参考和提出意见:
复制代码
代码如下:
/**
*
@todo
多条sql的事务处理
*
@param
$sqls
array
*
@return
boole
true/false
*/
public
function
doArraySqlActionsTran($password,$sqls){
$db
=
$this
->
doSqlLink($password);//打开数据库链接
$db
->
autocommit(FALSE);//设置为不自动提交,因为MYSQL默认立即执行
//获取SQL执行结果数组
for
($i=0;$i<count($sqls);$i++){
$result[$i]
=
$db
->
query($sqls[$i]);
}
//解析SQL执行结果数组
for
($j=0;$j<count($result);$j++){
if
($result[$j]==FALSE){
$result[$j]='false';
}else{
$result[$j]='true';
}
}
//查找SQL结果数组中是否存在false结果集
if
(in_array('false',$result)){
$sqlResult=FALSE;
}else{
$sqlResult==TRUE;
}
//根据结果集进行数据库回滚或者执行操作
if
($sqlResult==FALSE){
$db
->
rollback();//判断当执行失败时回滚
$return=FALSE;//
正式环境中使用
//$return='ROOLBACK';//test
标记使用
}else{
$db
->
commit();//执行事务s
$return=TRUE;//
正式环境中使用
//$return='COMMIT';//test
标记使用
}
$db->autocommit(true);
//设置为非自动提交——事务处理
$db->close();//关闭连接
return
$return;
}
到此事务执行批量SQL操作基本完成,谢谢大家!

㈧ php mysql commit之后还可以rollback么

事务(transaction)是由查询和/或更新语句的序列组成。 用 begin、start transaction
开始一个事务,rollback 回滚事务,commit 提交事务。 在开始一个事务后,可以有若干个 SQL 查询或更新语句,每个 SQL
递交执行后,还应该有判断是否正确执行的语句,以确定下一步是否回滚,若都被正确执行则最后提交事务。
事务一旦回滚,数据库则保持开始事务前状态。就好象一个被编辑的文件不存盘退出,自然还是保持文件原来的样子。
所以,事务可被视为原子操作,事务中的 SQL,要么全部执行,要不一句都不执行。
人家的回答,编辑文件可以理解吧

阅读全文

与phpmysql事务回滚相关的资料

热点内容
python列表求交集 浏览:872
解压包如何转音频 浏览:447
机明自动编程软件源码 浏览:325
php端口号设置 浏览:540
phperegreplace 浏览:320
androidgridview翻页 浏览:537
ssh协议编程 浏览:634
如何开我的世界电脑服务器地址 浏览:861
玄关pdf 浏览:609
程序员学习论坛 浏览:940
程序员的毒鸡汤怎么做 浏览:548
安卓怎么降级软件到手机 浏览:281
云与服务器入门书籍推荐产品 浏览:636
delphi编程助手 浏览:762
电脑遇到服务器问题怎么办 浏览:515
加工中心编程结束方法 浏览:296
了解什么是web服务器 浏览:140
面向对象的编程的基本特征 浏览:718
php定时执行任务linux 浏览:787
php数组中删除元素 浏览:725