10bet网址
MySQL PHP API
本手册下载
PDF (Ltr)- 2.4 mb
PDF (A4)- 2.4 mb


MySQL PHP API/.../ mysqli: begin_transaction mysqli_begin_transaction

3.8.3mysqli: begin_transactionmysqli_begin_transaction

版权所有1997-2021 PHP文档组。10bet官方网站

  • mysqli: begin_transaction

    mysqli_begin_transaction

    开始一个事务

描述

面向对象的风格

公共保龄球mysqli: begin_transactionint旗帜= = 0
字符串|零的名字= =零);

程序上的风格:

保龄球mysqli_begin_transactionmysqlimysql
int旗帜= = 0
字符串|零的名字= =零);

开始一个事务。需要InnoDB引擎(默认是启用的)。有关MySQL事务如何工作的更多细节,请参见http://dev.10bet靠谱mysql.com/doc/mysql/en/commit.html

参数

链接

仅过程样式:返回的链接标识符mysqli_connectmysqli_init

旗帜

有效的标志是:

  • MYSQLI_TRANS_START_READ_ONLY:以“Start transaction READ ONLY”启动事务。要求MySQL 5.6及以上版本。

  • MYSQLI_TRANS_START_READ_WRITE:启动事务为" Start transaction READ WRITE"。要求MySQL 5.6及以上版本。

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT:启动事务为“Start transaction WITH CONSISTENT SNAPSHOT”。

的名字

事务的保存点名称。

返回值

返回真正的在成功或在失败。

笔记

请注意

此函数不适用于非事务性表类型(如MyISAM或ISAM)。

更新日志

版本 描述
8.0.0 的名字现在可以为空。

例子

例3.31mysqli: begin_transaction例子

面向对象的风格

<?php /*告诉mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/*表引擎必须支持事务*/ mysqli->查询("CREATE table IF NOT EXISTS language (Code text NOT NULL, Speakers int(11) NOT NULL) engine =InnoDB DEFAULT CHARSET=utf8mb4;");/*启动事务*/ $mysqli->begin_transaction();try {/* Insert some values */ $mysqli->query(" Insert INTO language(Code, Speakers) values ('DE', 42000123)");/*尝试插入无效值*/ $language_code = 'FR';美元native_speakers =“未知”;$stmt = $mysqli->准备('INSERT INTO language(Code, Speakers) VALUES (?,?)');- > bind_param美元支撑(“党卫军”language_code美元,美元native_speakers); $stmt->execute(); /* If code reaches this point without errors then commit the data in the database */ $mysqli->commit(); } catch (mysqli_sql_exception $exception) { $mysqli->rollback(); throw $exception; }

程序上的风格

<?php /*告诉mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");/*表引擎必须支持事务*/ mysqli_query($mysqli, "CREATE table IF NOT EXISTS language (Code text NOT NULL, Speakers int(11) NOT NULL) engine =InnoDB DEFAULT CHARSET=utf8mb4;");/*启动事务*/ mysqli_begin_transaction($mysqli);try{/*插入一些值*/ mysqli_query($mysqli, " Insert INTO language(Code, Speakers) values ('DE', 42000123)");/*尝试插入无效值*/ $language_code = 'FR';美元native_speakers =“未知”;$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');Mysqli_stmt_bind_param ($stmt, 'ss', $language_code, $native_speakers); mysqli_stmt_execute($stmt); /* If code reaches this point without errors then commit the data in the database */ mysqli_commit($mysqli); } catch (mysqli_sql_exception $exception) { mysqli_rollback($mysqli); throw $exception; }

另请参阅

mysqli_autocommit
mysqli_commit
mysqli_rollback