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

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

PDO 事務處理

PDO 事務對象方法

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

注意:當需要使用事務的時候,數(shù)據(jù)庫表引擎不能是 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 "用戶賬戶表";
EOF;
    $pdo->exec($sql); // 使用 PDO 對象的 exec()方法執(zhí)行建表語句
    /*$sql = 'INSERT INTO user_account (username, money) VALUES (:username, :money),(:username2, :money2)';
    $statement = $pdo->prepare($sql); // 預處理 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í)行預處理*/
    // 開啟事務
    $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();
}


Previous article: Next article: