为什么我的 PHP 交易不起作用?

2024-04-06

我正在开展一个学校项目,为我的作品集网站创建 CMS。我的更新功能无法正常工作。我有一种感觉,这与我构建 PDO 事务的方式有关。在我的数据库中,我有一个项目表、类别表和关联的 content_category 表。我可以很好地将我的项目插入到这些表中。我想要做的是插入到我的项目表中,然后删除 content_category 表中的所有记录,最后将当前类别记录插入到该关联表中以完成事务。我确实收到了“项目已更新”的退货声明。但表格没有更新。有人有什么想法吗?

这是代码:

这是我的 Project 类中的一个函数。

public function update(){
    try {
        $conn = getConnection();
        $conn->beginTransaction();
        $sql = "UPDATE project 
                SET project_title = :title, 
                    project_description = :desc, 
                    project_isFeatured = :feat, 
                    project_mainImage = :image
                WHERE project_id = :id";
        $st = $conn->prepare($sql);
        $st->bindValue(":id", $this->id, PDO::PARAM_INT);
        $st->bindValue(":title", $this->title, PDO::PARAM_STR);
        $st->bindValue(":desc", $this->description, PDO::PARAM_STR);
        $st->bindValue(":feat", $this->isFeatured, PDO::PARAM_BOOL);            
        $st->bindValue(":image", $this->mainImage, PDO::PARAM_INT);
        $st->execute(); 

        $sql = "DELETE from content_category
                WHERE content_id = :id";
        $st = $conn->prepare($sql);
        $st->bindValue("id", $this->id, PDO::PARAM_INT);
        $st->execute();

        $sql = "INSERT into content_category (content_id, cat_id)
                VALUES (?,?)";
        $st = $conn->prepare($sql);

        foreach($this->categories as $key=>$value){
            $st->execute(array(intval($projectID), intval($value)));                                        
        }
        $conn->commit();
        $conn = null;
        return "Project updated";                   
    }
    catch(Exception $e) {
        echo $e->getMessage();
        $conn->rollBack();
        return "Error... Unable to update!";
    }
}

表的数据库引擎需要是 INNODB。如果您使用 phpMyAdmin,它默认为 MyISAM。 (我不知道这是否会导致更新无法通过或只是事务行被忽略。编辑:很确定文档说如果您在 myISAM 上开始事务,它将抛出错误并且不会执行任何操作)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 PHP 交易不起作用? 的相关文章

  • TCPDF / FPDI 可以接受 PDF 作为字符串吗?

    是否可以将 TCPDF 或 FPDI PDF 作为字符串提供 我有一个传入的 PDF 数组作为字符串 但无法写入磁盘 我在文档中找不到与此相关的任何内容 如果没有 是否有一种有效的方法来从内存或作为对象存储 读取这些 PDF 将它们喂给 F
  • 在 PHP 中拆分 XML

    我有一个带有根元素和多个项目子元素的合并 xml 像这样的东西
  • 如何在 PHP 中将默认日期设置为波斯日期?

    如何在 PHP 中将默认日期设置为波斯日期 说吧 如果我echo这个功能date Y m d 然后它会显示2018 03 05但我想要1396 12 14波斯日期 请检查 http php net manual en intldatefor
  • 从目录中读取所有文件内容 - php

    这实际上是一个简单的任务 我想显示指定文件夹中所有文件的内容 我正在传递目录名称 echo a href row qname a 在第二页上 我正在迭代目录内容 while entryname readdir myDirectory if
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • 在 php 和 mysql 中使用 utf8mb4

    我读过 mysql gt 5 5 3 完全支持每个可能的字符 如果您使用编码utf8mb4对于某个表 列http mathiasbynens be notes mysql utf8mb4 http mathiasbynens be note
  • 删除、截断或删除以清理 MySQL 中的表

    我正在尝试清理表格 但没有摆脱表格的实际结构 我有一个id自动递增的列 我不需要保留ID号 但我确实需要它来保持其自动递增的特性 我发现了删除和截断 但我担心其中之一会完全删除整个表 从而使未来的插入命令变得无用 如何从表中删除所有记录以便
  • 如何在 PHP 中运行 shell 脚本?

    我正在尝试使用 PHP 触发 shell 脚本的运行 本质上 当用户在我们用 PHP 编写的网站上完成一个操作时 我们希望触发一个 shell 脚本 该脚本本身调用一个 Java 文件 提前致谢 See shell exec http ph
  • 无法显示由 Fine-uploader 上传到 Amazon s3 的图像

    我现在尝试设置fineuploader s3以显示在aws服务器上成功上传的文件的图像 如示例页面上所做的那样 http fineuploader com s3 demo http fineuploader com s3 demo 我 仍然
  • 根据类别 woocommerce 更改同一产品的默认变体值

    我正在研究一种根据其所属类别显示同一产品的默认变体值的方法 例如 我出售一张带有蓝色和红色选项的卡 当用户进入 一 类别时 我希望默认值为蓝色 如果他属于第二类 则该值将为红色 我发现了一个钩子woocommerce product def
  • 使用来自另一个的 SELECT 更新表,但字段为 SUM(someField)

    基本上我有这样的事情 UPDATE Table SET Table col1 other table col1 FROM Table INNER JOIN other table ON Table id other table id 问题是
  • PHP 负面因素不断增加

    我这里有这个代码 remaining 0 foreach clientArrayInvoice as key gt row remaining remaining row total 它的作用是 它获取总计值并将它们相加 但是当我有负值时
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • SVG 转 JPG / PNG

    有没有工作模块可以convert a SVG image into像素格式如JPEG or PNG 看看蜡染工具包 具体来说是光栅化器 http xmlgraphics apache org batik tools rasterizer h
  • 如何检查一个值是否已经存在以避免重复?

    我有一个 URL 表 但我不想要任何重复的 URL 如何使用 PHP MySQL 检查给定 URL 是否已在表中 如果您不想重复 可以执行以下操作 添加唯一性约束 use REPLACE http dev mysql com doc ref
  • 您可以使用 MySQL 查询来完整创建数据库的副本吗

    我有一个包含 5 个表的 MySQL 数据库的实时版本和一个测试版本 我不断使用 phpMyAdmin 将实时版本中的每个表复制到测试版本 有谁有mysql查询语句来制作数据库的完整副本吗 查询字符串需要考虑结构 数据 自动增量值以及与需要
  • PHP 中的简单 JSON 请求

    我有以下 json country code latitude 45 9390 longitude 24 9811 zoom 6 address city country Romania country code RO region 我只想
  • SimpleXML插入处理指令(样式表)

    我想集成一个XSL文件在一个XML给我的字符串php CURL命令 我试过这个 output XML gived me by curl option hotel simplexml load string output hotel gt a
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3

随机推荐

  • Android 设备管理员权限活动未启动

    我正在尝试以设备管理员身份启用我的应用程序 尝试调用授予我的应用程序权限成为设备管理员的活动的代码如下 import android app Activity import android app admin DevicePolicyMan
  • 将字符串格式的日期转换为字符串日期前一天的 nsdate 结果

    我搜索了我的问题 但没有找到任何相关的帮助 故事 用户按名称 开始日期 结束日期和注释创建连续事件 因此将所有字段保存在 Sqlite 数据库中 两个日期格式均为 yyyy MM dd 之后 当用户想要对事件执行操作时 应用程序会检查用户选
  • 如何使用 OpenCV triangulatePoints

    我正在努力获取 OpenCVtriangulatePoints功能来工作 我正在使用该函数与光流生成的点匹配 我使用来自单个移动摄像机的两个连续帧 位置 目前 这些是我的步骤 给出了内在函数 看起来就像人们所期望的那样 2 6551e 00
  • 动态为mysql查询中的所有字段名分配别名

    我的 mysll 数据库中有 2 个表 两个表都有很少的固定列和很少的动态列 字段 架构 我想用以下查询连接这两个表 SELECT FROM cd cd LEFT JOIN cd n cn ON cd id cn fk cd 我想要的结果是
  • 在新维度中堆叠数组

    假设我有三个数组 k np array 1 1 2 2 m np array 3 3 4 4 n np array 5 5 6 6 理想情况下 我希望获得形状为 3 2 2 的最终数组 即 array 1 1 2 2 3 3 4 4 5 5
  • Scala 模式匹配引用

    当模式匹配案例类时 您实际上如何引用它所匹配的类 这是一个例子来说明我的意思 sealed trait Value case class A n Int extends Value v match case A x gt doSomethi
  • 大对象不能在自动提交模式下使用

    我正在开发一个使用 spring 和 hibernate 的应用程序 我们使用 postgresql 作为数据库 当我尝试将记录插入到具有 OID 列的表中时 会引发以下错误 org hibernate exception GenericJ
  • 未处理的异常:无法测试没有大小的渲染框

    所以我正在尝试重新创建一个 UI 模板 这是代码 我试图通过调用RecentlyViewed 添加另一个水平GridView 但重新加载后它无法呈现 我不知道如何渲染它 我尝试过使用扩展的小部件和灵活的但都不起作用 return Scaff
  • iOS:UICollectionViewCell根据屏幕尺寸自动调整大小

    我试图在集合视图中创建 10 个单元格 与屏幕大小相同 当我在 iphone5s 模拟器中运行我的应用程序时 视图恰好包含 5 个单元格 但是当我切换到 iphone6p 模拟器时 视图包含超过 5 个单元格 我应该如何调整单元格大小 以使
  • 在按钮上应用滤色器

    我有很多带有很多不同背景颜色的按钮 我想知道是否有办法在点击时应用一些滤色镜 例如 我希望所有按钮在单击时变得更暗 它们保留了原来的颜色 但颜色更深了 有没有一种简单的方法可以做到这一点 或者我必须为每个按钮定义较暗的颜色 Thanks 我
  • 制作一个包含我的列表项的文本文件并对其应用正则表达式

    我应该编写一个代码来读取包含一些具有一些常见语言特征的单词的文本文件 对所有单词应用一些正则表达式 并写入一个包含更改后的单词的文件 现在假设我的文本文件名为abcd txt有这些话 king sing ping cling booked
  • Popen.communicate() 抛出 UnicodeDecodeError

    我有这个代码 def executeCommand self command str input str None gt str p sub Popen command stdout sub PIPE stderr sub PIPE std
  • 在 Windows 窗体中列出(顶级)声明的变量

    创建表单的实例后 我可以轻松列出表单中的所有控件 有没有什么机制可以列出所有声明的变量或这样的物体 也许我会称它为声明 仅顶层声明就足够了 假设我们有MyForm具有此类顶级声明的表格 Dim Town as String Dim ZIP
  • 输出路径和 MSBuild

    我有一个包含 9 个项目的解决方案 每个项目中的所有引用都将其 CopyLocal 属性设置为 False 当我从 VS 构建它时 这些引用的二进制文件都不会复制到输出构建目录 同样 当我使用 msbuild 进行构建时 我只看到项目二进制
  • 使用现有表单将数据发送到 mailchimp,然后重定向

    我没有经常使用我的 mailchimp 所以我想知道是否可以在不使用预制模板的情况下轻松地将表单数据发送到 mailchimp 另外 mailchimp 会发送某种回调吗 我想提交表单 然后完成后它将用户重定向到下载页面 如果能在 ajax
  • 如何通过Linux中的终端检查窗口是否最小化

    如何通过 Linux 中的终端检查窗口是否最小化 name Window Title grep Map State 寻找IsViewable versus IsUnMapped 这些来自map state返回的字段XGetWindowAtt
  • Serilog:{..} 和 {@..} 之间的区别

    鉴于此代码 var d1 new x 5 y 88 Log Logger Information d1 d1 Log Logger Information d1 d1 d1 中的对象如何在两条 Log Logger Information
  • 如何找到阶乘? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何编写一个程序来求任意自然数的阶乘 这适用于正整数的阶乘 尽管是一个非常小的子集 unsigned long factorial u
  • 如何制作“搜索框,根据输入字符串上的 API 调用获取数据检索显示动态选项列表”,如 amp 邮件中的 select2

    我对 AMP 电子邮件技术非常陌生 我面临着与在搜索框中呈现动态选项相关的问题 这使得根据输入字符串获取 API 请求调用作为查询 并根据请求检索的数据显示选项列表 我发现 amp autocomplete 在 amp email 中不起作
  • 为什么我的 PHP 交易不起作用?

    我正在开展一个学校项目 为我的作品集网站创建 CMS 我的更新功能无法正常工作 我有一种感觉 这与我构建 PDO 事务的方式有关 在我的数据库中 我有一个项目表 类别表和关联的 content category 表 我可以很好地将我的项目插