广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php事务回滚不了怎么办
  • 778
分享到

php事务回滚不了怎么办

2024-04-02 19:04:59 778人浏览 独家记忆
摘要

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php事务回滚不了怎么办?问题描述:关于php 事务未执行回滚Mysqliphptransactions Transactions not doing the rol

教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php事务回滚不了怎么办?

问题描述:

关于php 事务未执行回滚

Mysqliphptransactions
Transactions 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);

Http://php.net/manual/zh/mysqli.autocommit.php

以上就是php事务回滚不了怎么办的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: php事务回滚不了怎么办

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

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

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

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

下载Word文档
猜你喜欢
  • php事务回滚不了怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php事务回滚不了怎么办?问题描述:关于php 事务未执行回滚mysqliphptransactions Transactions not doing the rol...
    99+
    2022-10-20
  • php事务回滚不了如何解决
    这篇文章主要介绍了php事务回滚不了如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php事务回滚不了如何解决文章都会有所收获,下面我们一起来看看吧。php事务回滚不了的解决办法:1、打开相应的PHP文件...
    99+
    2023-07-04
  • iis php加载不了mysql怎么回事
    由于网站开发过程中需要使用到多种技术,其中iis php和MySQL也是比较常用的技术。然而,在使用iis php时,有时候会遇到无法加载MySQL的问题,这时候该怎么办呢?首先,我们需要了解iisphp和MySQL的基本概念。iisphp...
    99+
    2023-05-14
  • Redis事务为什么不支持回滚
    目录前言Redis 有事务吗Redis 事务实现原理Redis 事务 ACID 特性A - 原子性 C - 一致性I - 隔离性D - 持久性watch 命令watch 命...
    99+
    2022-11-12
  • 怎么使用@Transactional设置嵌套事务不回滚
    本篇内容介绍了“怎么使用@Transactional设置嵌套事务不回滚”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!@Transaction...
    99+
    2023-06-20
  • jdbc回滚事务怎么实现
    JDBC中回滚事务的实现可以通过以下步骤完成: 首先,确保数据库连接已经开启了事务。可以通过设置连接的自动提交属性为false来实...
    99+
    2023-10-26
    jdbc
  • 华为云服务器登录不了怎么回事儿呢怎么办
    如果华为云服务器登录不了,可以按照以下步骤进行排查: 检查网络连接状态:检查华为云服务器的网络连接状态,确保能够正常使用; 检查计算机配置:检查计算机的硬件和软件配置,确保能够正常运行。 重新启动计算机:重新启动计算机可以帮助解决无法登...
    99+
    2023-10-26
    华为 回事儿 服务器
  • 华为云服务器登录不了怎么回事儿呀怎么办
    如果您的华为云服务器登录不正常,可以尝试以下步骤来解决问题: 打开华为云服务器的管理面板,点击【应用程序】下面的【服务器管理器】选项。 在服务器管理器界面中,找到服务器的IP地址,然后在输入框中输入服务器的IP地址,例如:127.0.0...
    99+
    2023-10-26
    华为 回事儿 服务器
  • 云服务器怎么启动不了了怎么回事
    如果您的云服务器无法启动,有以下几个可能的原因: 网络连接问题:请确认您的网络连接是否正常,可能是网络连接问题引起的。可以通过重新启动云服务器或更换网络连接来解决这个问题。 DNS设置问题:请检查您的DNS设置,确保您使用的是正确的 D...
    99+
    2023-10-27
    怎么回事 服务器
  • 云服务器被攻击怎么办,快速处理不了怎么回事
    首先,用户需要立即切断云服务器与外部网络的连接,并关闭云服务器的防火墙以阻止恶意攻击者的入侵。关闭防火墙的步骤非常简单,只需要打开控制台或使用命令行工具来执行即可。在执行完关闭防火墙的命令后,用户需要检查云服务器的日志,以找出恶意攻击者入侵...
    99+
    2023-10-28
    怎么回事 快速 服务器
  • 轻量应用服务器登录不了怎么回事儿呀怎么办
    如果轻量应用服务器登录不了,可以考虑以下几个可能的原因: 网络连接问题:这可能是因为服务器的网络连接有问题,或者出现了错误。您可以尝试重新加载页面或者使用其他方法尝试连接上服务器。 应用程序或服务崩溃:如果轻量应用服务器无法正常启动,可...
    99+
    2023-10-26
    回事儿 服务器
  • 云服务器ecs怎么用不了了呢怎么回事
    如果您使用的是云服务器ECS(云服务器容器),但云服务器ecs(云服务器容器)已经关闭或无法正常启动,请检查以下几个问题: 您的云服务器ECS服务器是否正在运行:尝试重新启动云服务器ECS服务器以重新连接到您的计算机,如果仍然无法启动,...
    99+
    2023-10-27
    怎么回事 服务器 ecs
  • 云服务器怎么启动不了了呢怎么回事
    确认您的计算机是否符合云服务器的要求:您需要确保您的计算机具有可用的内存、CPU和磁盘空间,以及网络连接和防火墙设置。如果您的计算机无法满足这些要求,则无法启动云服务器。 检查您的网络连接:您需要确保您的网络连接正常,以便云服务器能够正常...
    99+
    2023-10-28
    怎么回事 服务器
  • 云服务器怎么启动不了了怎么回事儿
    电源问题:如果云服务器的电源供应出现问题,可能会导致服务器无法启动。您需要检查电源连接以确保云服务器能够正常工作。 温度问题:如果云服务器的温度过高,可能会导致服务器内部过热,从而无法正常运行。您需要确保服务器的温度控制在合适的范围内。 ...
    99+
    2023-10-27
    回事儿 服务器
  • 云服务器怎么启动不了了怎么回事呀
    检查云服务器是否正常运行 如果云服务器无法启动,首先需要检查云服务器的系统是否正常运行。可以使用命令行工具来检查云服务器的系统日志,查看是否有任何异常或警告信息。如果有异常或警告信息,则需要进一步检查云服务器的系统日志,以找出问题所在...
    99+
    2023-10-28
    怎么回事 服务器
  • pinterest进不去了怎么回事
    pinterest进不去了的原因:1、网络连接不稳定;2、浏览器不兼容Pinterest的网站;3、服务器繁忙;4、维护或升级等原因而进行计划的停机;5、网络提供商(ISP)出现问题。Pinterest是一个非常受欢迎的图片分享社交平台,它...
    99+
    2023-07-14
  • Mysql启动不了怎么回事
    mysql 服务无法启动是什么原因? mysql服务无法启动的原因有很多:可能端口被占用;可能my.cnf配置了错误的参数;也有可能没有初始数据库,还有可能是其他原因。大多数原因都可以通过先注销掉原有的服务、重新装载服务、之后再重新启...
    99+
    2023-09-09
    mysql 数据库 服务器 运维 linux
  • win10远程不了怎么回事
    Win10远程无法连接通常有以下几个可能的原因:1. 确保远程桌面服务已启用:在Win10的控制面板中,选择“系统和安全”>“系统”...
    99+
    2023-09-04
    win10
  • 云服务器登录不了怎么回事
    如果您的云服务器登录不正常,请尝试以下步骤: 确认您的网络链接是否正常。确保您的互联网连接稳定。 尝试重新输入账号和密码。如果您无法通过网络连接正常登录云服务器,请尝试重新输入账号和密码以确保登录正常。 尝试使用 Web 登录功能。如果...
    99+
    2023-10-26
    怎么回事 服务器
  • 腾讯云服务器登录不了了怎么回事
    如果您的腾讯云服务器登录不正常,可以尝试以下步骤来解决问题: 打开腾讯云服务器管理界面(https://cdn.qq.com/tencent),在弹出的登录页面中输入自己的QQ账号和密码,然后按下“登录”按钮。 如果登录界面提示账户已被...
    99+
    2023-10-26
    腾讯 怎么回事 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作