亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
前言 MySQL的使用 MySQL多表同時(shí)刪除方案 MySQL跨表、多表更新SQL語(yǔ)句總結(jié) MySQL存儲(chǔ)引擎 安裝 常規(guī)方式編譯安裝MySQL 采用cmake方式編譯安裝MySQL 使用rpm包安裝MySQL 使用yum方式安裝MySQL 采用二進(jìn)制方式免編譯安裝MySQL 多實(shí)例的安裝 什么是多實(shí)例 多實(shí)例的作用、問(wèn)題以及應(yīng)用場(chǎng)景 多實(shí)例安裝01【推薦】 多實(shí)例官方安裝方案02 啟動(dòng)、用戶(hù)和權(quán)限管理 單實(shí)例MySQL的啟動(dòng)和關(guān)閉的方法 設(shè)置及修改MySQL root用戶(hù)密碼 找回丟失的MySQL root用戶(hù)密碼 創(chuàng)建MySQL用戶(hù)及用戶(hù)權(quán)限管理 基礎(chǔ)命令的操作 MySQL庫(kù)和表相關(guān)操作 MySQL中的索引操作 MySQL常用命令 MySQL的錯(cuò)誤代碼 MySQL復(fù)習(xí)秘籍 備份與恢復(fù) 備份 恢復(fù) mysqlbinlog命令 服務(wù)日志 主從復(fù)制 主從復(fù)制部署配置問(wèn)題匯總 主從復(fù)制讀寫(xiě)分離 災(zāi)難恢復(fù) 配置phpmyadmin連接多實(shí)例MySQL MySQL語(yǔ)句大全 用戶(hù)創(chuàng)建、權(quán)限、刪除 數(shù)據(jù)庫(kù)與表顯示、創(chuàng)建、刪除 Mysql表復(fù)制及備份還原 數(shù)據(jù)庫(kù)表中數(shù)據(jù)操作 修改表中的指定一條數(shù)據(jù) 查詢(xún)表 日志 批量修改Mysql表引擎為InnoDB的方法 數(shù)據(jù)庫(kù)抽象層 PDO PDO對(duì)象常用方法 PDO 事務(wù)處理 PDO 與 MySQLi 二者效率簡(jiǎn)單比較 大小寫(xiě)敏感性 lower_case_table_names CentOS7安裝MySQL5.7密碼查看與修改
文字

PDO 事務(wù)處理

PDO 事務(wù)對(duì)象方法

方法描述
beginTransaction()啟動(dòng)一個(gè)事務(wù)
commit()提交一個(gè)事務(wù)
rollBack()回滾一個(gè)事務(wù)
inTransaction()檢測(cè)是否在一個(gè)事務(wù)內(nèi)

注意:當(dāng)需要使用事務(wù)的時(shí)候,數(shù)據(jù)庫(kù)表引擎不能是 MyISAM ,必須要是 InnoDB

<?php

try {
    $host = 'mysql:host=localhost;dbname=test';
    $pdo = new PDO($host, 'root', 'aaaaaa', [PDO::ATTR_AUTOCOMMIT => 0]);
    // 建表 SQL
    $sql = <<<EOF
        CREATE TABLE IF NOT EXISTS user_account(
            id INT UNSIGNED NOT NULL AUTO_INCREMENT,
            username VARCHAR(20) NOT NULL UNIQUE,
            money DECIMAL(8,2) NOT NULL, 
            PRIMARY KEY (id)
        )ENGINE=InnoDB DEFAULT CHARSET UTF8 COMMENT "用戶(hù)賬戶(hù)表";
EOF;
    $pdo->exec($sql); // 使用 PDO 對(duì)象的 exec()方法執(zhí)行建表語(yǔ)句
    /*$sql = 'INSERT INTO user_account (username, money) VALUES (:username, :money),(:username2, :money2)';
    $statement = $pdo->prepare($sql); // 預(yù)處理 SQL
    $statement->bindParam(':username', $username, PDO::PARAM_STR);
    $statement->bindParam(':money', $money);
    $statement->bindParam(':username2', $username2, PDO::PARAM_STR);
    $statement->bindParam(':money2', $money2);
    $username = 'luo';
    $money = 3000.00;
    $username2 = 'li';
    $money2 = 3000.00;
    $statement->execute(); // 執(zhí)行預(yù)處理*/
    // 開(kāi)啟事務(wù)
    $pdo->beginTransaction();
    $res = $pdo->exec('UPDATE user_account SET money = money - 2000 WHERE username = "li"');
    if ($res == 0) {
        throw new PDOException('li 轉(zhuǎn)賬失敗');
    }
    $res2 = $pdo->exec('UPDATE user_account SET money = money + 2000 WHERE username = "luo"');
    if ($res2 == 0) {
        throw new PDOException('luo 接受轉(zhuǎn)賬失敗');
    }
    $pdo->commit();
} catch (PDOException $e) {
    echo $e->getMessage();
}


上一篇: 下一篇: