mysql.begin
mysql.begin
功能
开启一个 MySQL 事务,并返回 MysqlTransaction 事务句柄。
语法
tx = mysql(dsn).begin()
参数
无参数。DSN 由 mysql(dsn) 提供。
返回值
| 类型 | 说明 |
|---|---|
| MysqlTransaction | 事务句柄。事务内可继续调用 query、bind、all、one、exec、commit、rollback、close 和 status。 |
代码示例
db = mysql('mysql://user:pass@127.0.0.1/test') tx = db.begin() ret = tx.query('insert into user(name) values (?)').bind('BT').exec() tx.commit() result = ret.rows_affected // 输出示例:1 echo(result)
注意事项
- begin 会独占一条连接,事务结束前不要长期持有。
- 事务完成后必须显式调用 commit、rollback 或 close。
- begin、事务内 SQL 和 commit/rollback/close 都受
BT_MYSQL_QUERY_TIMEOUT_MS限制。 - 事务慢调用超过
BT_MYSQL_SLOW_MS时只记录耗时、方法名和绑定数量,不记录绑定值。