略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: PDO::commit

2024-05-03

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::commit 提交一个事务

说明

PDO::commit(): bool

提交一个事务,数据库连接返回到自动提交模式直到下次调用 PDO::beginTransaction() 开始一个新的事务为止。

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 提交一个基础事务

<?php
/* 开始一个事务,关闭自动提交 */
$dbh->beginTransaction();

/* 在全有或全无的基础上插入多行记录(要么全部插入,要么全部不插入) */
$sql 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)'
;

$sth $dbh->prepare($sql);

foreach (
$fruits as $fruit) {
    
$sth->execute(array(
        
$fruit->name,
        
$fruit->colour,
        
$fruit->calories,
    ));
}

/* 提交更改 */
$dbh->commit();

/* 现在数据库连接返回到自动提交模式 */
?>

示例 #2 提交一个DDL事务

<?php
/*  开始一个事务,关闭自动提交 */
$dbh->beginTransaction();

/* Change the database schema */
$sth $dbh->exec("DROP TABLE fruit");

/* 更改数据库架构 */
$dbh->commit();

/* 现在数据库连接返回到自动提交模式 */
?>

注意: 并不是所有数据库都允许使用DDL语句进行事务操作:有些会产生错误,而其他一些(包括MySQL)会在遇到第一个DDL语句后就自动提交事务。

参见

add a noteadd a note

User Contributed Notes 1 note

up
4
re_action
7 years ago
Keep in mind this bug: https://bugs.php.net/bug.php?id=66528

you could not rely on commit() return value while using MySql

官方地址:https://www.php.net/manual/en/pdo.commit.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3