php - 类方法的 beginTransaction PDO

标签 php mysql pdo

   <?php

class dbLayer
{

    //connection from here 

    private $done;

    function __construct(PDO $connection)
    {
        $this->done = $connection;

    }

    public function createAction()
    {
        //create a new  item
    }

    public function readAction()
    {
        //read all the  items
    }

    public function updateAction()
    {

        $sql = $this->done->prepare("UPDATE `sync_log` SET `Sync_Status`=? WHERE `randKey`=?");
        $sql->execute(array(
            $status,
            $randKey
        ));
    }

    public function deleteAction()
    {
        //delete a item
    }

}

?>

我想将 $pdo->beginTransaction(); 与类方法一起使用。如果我使用 updateAction() 方法更新失败,我如何使用 roalback() ?

最佳答案

事务性 updateAction() 示例:

public function updateAction()
{
    try {
        $this->done->beginTransaction();
        $sql = $this->done->prepare("UPDATE `sync_log` SET `Sync_Status`=? WHERE `randKey`=?");
        $sql->execute(array(
            $status,
            $randKey
        ));
        $this->done->commit();
    } catch (PDOException $e) {
        $this->done->rollback();
    }
}

请注意,如果您想返回受影响的行数,您必须在提交后执行此操作。并且您想在回滚后在 catch block 上返回 0 或 false

关于php - 类方法的 beginTransaction PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851371/

相关文章:

php - Laravel:如何使用 where 语句中的值填充 blade SELECT

php - 如何使用控制缓存 header ?

mysql 一个字段中有多个子字符串

mysql - 使用 PHP PDO 进行双重分组

php - 如何从mysql数组文本中选择并比较

php - 按步骤逻辑进行测验算法

mysql - 无法删除损坏的 mysql 安装或修复依赖项(Kali 2)

python - 将 SQL 文件查询为 CSV

php - PDO::准备安全

php - Laravel 更新查询数组到字符串转换