php 事务不起作用,为什么我的PHP事务不起作用?

我正在为我的投资组合网站创建一个CMS项目.我无法使更新功能正常工作.我觉得它与我构建PDO事务的方式有关.在我的数据库中,我有一个项目表,类别表和关联的content_category表.我能够很好地将我的项目插入到这些表中.我想要做的是插入我的项目表然后删除content_category表中的所有记录,最后将当前类别记录插入到该关联表中以完成事务.我确实得到了返回声明“Project Updated”.但表格没有更新.任何人的想法?

这是代码:

这是我的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!";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值