广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php事务回滚不了如何解决
  • 725
分享到

php事务回滚不了如何解决

2023-07-04 10:07:35 725人浏览 泡泡鱼
摘要

这篇文章主要介绍了PHP事务回滚不了如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php事务回滚不了如何解决文章都会有所收获,下面我们一起来看看吧。php事务回滚不了的解决办法:1、打开相应的PHP文件

这篇文章主要介绍了PHP事务回滚不了如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php事务回滚不了如何解决文章都会有所收获,下面我们一起来看看吧。

php事务回滚不了的解决办法:1、打开相应的PHP文件;2、检查“function update_user_set_date_of_birth($date_of_birth){...}”代码;3、通过“$this->mysqli->autocommit(false);”方式关闭自动提交即可。

php事务回滚不了怎么办?

问题描述:

关于php 事务未执行回滚

MysqliphptransactionsTransactions not doing the rollback

我具有更新用户的功能:

function update_user_set_common($date_of_birth, $mobile, $street, $housenumber, $addition, $postal_code, $location, $country){    try {        $this->mysqli->begin_transaction();        $this->update_user_set_date_of_birth($date_of_birth);        $this->update_user_set_mobile($mobile);        $this->update_user_set_address($street, $housenumber, $addition, $postal_code, $location, $country);        $this->mysqli->commit();        return true;    } catch (Exception $e) {        $this->mysqli->rollback();        echo"Error:" . $e;        return false;    }}

如您所见,我进行了一笔交易。如果一切正常,则应提交,如果发生错误,则应回滚。

这是我的更新查询方式的一个示例:

function update_user_set_date_of_birth($date_of_birth){    return $this->update_user_set_singlefield(COL_USER_DATE_OF_BIRTH, $date_of_birth);}function update_user_set_singlefield($field, $value){    if ($update_stmt = $this->mysqli->prepare("UPDATE" . TABLE_USER ." SET" . $field ." = ? WHERE" . COL_USER_ID ." = ?")) :        if (!$update_stmt->bind_param("ss", $value, $this->USER_ID)) :            $update_stmt->close();            return false;        endif;        if (!$update_stmt->execute()) :            $update_stmt->close();            return false;        else :            $update_stmt->close();            return true;        endif;    else :        return false;    endif;}

因此现在例如update_user_set_mobile失败,但是没有回滚。 update_user_set_date_of_birth之前的语句仍然会执行,并且不会变回原先。

为什么没有回滚?

示例创建表以显示我使用innodb:

CREATE TABLE `USER` (  `USER_ID` bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,  `USER_E_MaiL` varchar(255) COLLATE utf8_bin NOT NULL,  `USER_PASSWORT` varchar(255) COLLATE utf8_bin NOT NULL,  `USER_PASSWORT_SALT` varchar(255) COLLATE utf8_bin NOT NULL,  `USER_FIRSTNAME` varchar(255) COLLATE utf8_bin NOT NULL,  `USER_LASTNAME` varchar(255) COLLATE utf8_bin NOT NULL,  `USER_DATE_OF_BIRTH` varchar(200) COLLATE utf8_bin DEFAULT NULL,  `USER_MOBILE` varchar(255) COLLATE utf8_bin DEFAULT NULL,  `ADDRESS_ID` bigint(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

问题解决:

关闭自动提交而不是mysqli-> begin_transaction();

$this->mysqli->autocommit(false)

php有什么特点

1、执行速度快。

2、具有很好的开放性和可扩展性。

3、PHP支持多种主流与非主流的数据库

4、面向对象编程:PHP提供了类和对象。

5、版本更新速度快。

6、具有丰富的功能。

7、可伸缩性。

8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。

关于“php事务回滚不了如何解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“php事务回滚不了如何解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: php事务回滚不了如何解决

本文链接: https://www.lsjlt.com/news/344214.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php事务回滚不了如何解决
    这篇文章主要介绍了php事务回滚不了如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php事务回滚不了如何解决文章都会有所收获,下面我们一起来看看吧。php事务回滚不了的解决办法:1、打开相应的PHP文件...
    99+
    2023-07-04
  • 决@Transactional注解事务不回滚如何解决
    决@Transactional注解事务不回滚如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、特性先来了解一下@Transactional注解事务的特性...
    99+
    2023-06-06
  • php事务回滚不了怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php事务回滚不了怎么办?问题描述:关于php 事务未执行回滚mysqliphptransactions Transactions not doing the rol...
    99+
    2022-10-20
  • redis不支持事务回滚如何解决
    Redis本身是单线程的,并且它使用了类似于命令队列的机制来处理客户端请求。这导致了Redis的事务是部分支持事务回滚的。在Redi...
    99+
    2023-09-16
    redis
  • SpringBoot事务不回滚的解决方案
    目录1.非 public 方法解决方案2.try/catch 解决方案解决方案1:将异常重新抛出解决方案2:使用代码手动回滚事务3.调用内部 @Transactional 方法解决方...
    99+
    2022-11-13
  • mongodb事务回滚失败怎么解决
    当 MongoDB 的事务回滚失败时,可能有以下几种解决方法: 检查 MongoDB 版本:首先确保你使用的是 MongoDB ...
    99+
    2023-10-26
    mongodb
  • 完美解决Spring声明式事务不回滚的问题
    疑问,确实像往常一样在service上添加了注解 @Transactional,为什么查询数据库时还是发现有数据不一致的情况,想想肯定是事务没起作用,出现异常的时候数据没有回滚。于是就对相关代码进行了一番测试,结果发现一下踩进了两个坑,确实...
    99+
    2023-05-31
    spring 声明式事务 不回滚
  • 如何解决spring声明式事务@Transactional不回滚的多种情况问题
    这篇文章给大家分享的是有关如何解决spring声明式事务@Transactional不回滚的多种情况问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、 spring 事务原理一、Spring事务原理在使用JD...
    99+
    2023-06-25
  • spring在service层的方法报错事务不会回滚的解决
    目录spring在service层方法报错事务不会回滚解决方法service手动回滚问题spring在service层方法报错事务不会回滚 @Transactional(rollba...
    99+
    2022-11-13
  • spring在service层的方法报错事务不会回滚怎么解决
    这篇文章主要介绍“spring在service层的方法报错事务不会回滚怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“spring在service层的方法报错事务不会回滚怎么解决”文章能帮助大...
    99+
    2023-06-29
  • win7语言栏不见了是怎么回事如何解决
      win7语言栏不见了怎么办很多网友遇到这种问题都急得像热锅上的蚂蚁,其实解决方法很容易,只需简单几步就可以搞定啦。   操作步骤如下:   1. 依次单击“开始”--“控制面板&r...
    99+
    2023-06-02
    win7 语言栏不见了 怎么回事 语言栏
  • Django事务回滚如何实现
    这篇文章主要介绍“Django事务回滚如何实现”,在日常操作中,相信很多人在Django事务回滚如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Django事务回滚如何实现”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • Spring事务捕获异常后依旧回滚的解决
    目录前沿问题阐述知识点前置条件问题追踪总结前沿 一段生产事故发人深省,在Spring的声明式事务中手动捕获异常,居然判定回滚了,这是什么操作?话不多说直接上代码 @Service p...
    99+
    2022-11-12
  • spring声明式事务 @Transactional 不回滚的多种情况以及解决方案
    目录一、 spring 事务原理问题一、@Transactional 应该加到什么地方,如果加到Controller会回滚吗?问题二、 @Transactional 注解中用不用加r...
    99+
    2022-11-12
  • spring如何实现事务异常回滚
    这篇文章将为大家详细讲解有关spring如何实现事务异常回滚,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为了打印清楚日志,很多方法我都加tyrcatch,在catch中打印日志。但是这边情况来了,当这个...
    99+
    2023-05-30
  • php用不了user如何解决
    这篇文章主要介绍“php用不了user如何解决”,在日常操作中,相信很多人在php用不了user如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php用不了user如何解决”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • mac识别不了硬盘怎么回事 mac识别不了硬盘怎么解决
    许多mac用户在使用电脑过程中,会发现插上的移动硬盘,出现无法被电脑正常识别的问题,连接到电脑上灯会亮,但是电脑里不显示,连接到别的电脑上却没问题。小编今天就帮助大家解决mac识别不了硬盘怎么回事,mac识别不了硬盘怎么解决。   一、m...
    99+
    2023-08-31
    macos windows 服务器
  • php返回时间不对如何解决
    这篇“php返回时间不对如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php返回时间不对如何解决”文章吧。php返回...
    99+
    2023-07-05
  • 阿里云登录服务器没了怎么回事?如何解决?
    在使用阿里云的服务器过程中,有时候可能会遇到登录服务器没了的情况,这可能是由于各种原因导致的。本文将详细介绍这种情况的原因,并提供一些解决方法。 一、问题原因输入错误的用户名和密码:登录服务器需要输入正确的用户名和密码,如果输入错误,将会导...
    99+
    2023-11-14
    阿里 没了 怎么回事
  • xp系统的回收站不见了如何解决
    如果您使用的是Windows XP系统,但是回收站不见了,您可以尝试以下解决方法:1. 检查回收站的属性:右键单击桌面上的回收站图标...
    99+
    2023-08-22
    xp
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作