PDF (Ltr)- 2.4 mb
PDF (A4)- 2.4 mb
版权所有1997-2021 PHP文档组。10bet官方网站
mysqli: begin_transaction
mysqli_begin_transaction
开始一个事务
描述
面向对象的风格
公共保龄球mysqli: begin_transaction(int旗帜= = 0,
字符串|零的名字= =零);
程序上的风格:
保龄球mysqli_begin_transaction(mysqlimysql,
int旗帜= = 0,
字符串|零的名字= =零);
开始一个事务。需要InnoDB引擎(默认是启用的)。有关MySQL事务如何工作的更多细节,请参见http://dev.10bet靠谱mysql.com/doc/mysql/en/commit.html.
参数
-
链接
-
仅过程样式:返回的链接标识符
mysqli_connect
或mysqli_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 |