在PDO中使用事务

一般还是ORM的事务方便一些,下面是PHP原生PDO MySQL的事务。

function getPDO(){
    $dsn        = 'mysql:dbname='.config('database')['database'].';host='.config('database')['hostname'];
    $username   = config('database')['username'];
    $password   = config('database')['password'];

    try {
        $dbh = new PDO($dsn, $username, $password);
    } catch (PDOException $e) {
        // echo 'Connection failed: ' . $e->getMessage();
        return false;
    }
    return $dbh;
}


$dbh = getPDO();
try{
    $dbh->beginTransaction();

    $sth = $dbh->prepare("UPDATE tp_user SET balance = :balance WHERE id=:userid");
    $sth->execute(['balance'=>$balance, 'userid'=>$user['id']]);
    $sth = $dbh->prepare("UPDATE tp_user_charge SET status=1 WHERE id=:id");
    $sth->execute(['id'=>$id]);
    
    $dbh->commit();
    return $this->success("充值成功");
} catch(Exception $e) {
    $dbh->rollBack();
    return $this->error("充值失败:".$e->getMessage());
}

 

 

修改时间 2019-06-25

真诚赞赏,手留余香
赞赏
随机推荐
php和Javascript修改图片路径
响应式设计-VS-REM布局
Thinkcmf 后台文章管理[posts]表新增字段调用编辑器
jQuery Mobile 1.4.5 select数据更新
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv
Bash 常用代码
macOS安装composer
CSS实现单行、多行文本溢出显示省略号
HTML5播放HLS流(.m3u8文件) Apache 跨域设置
vue-router的几种使用方式