<?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/