# mysql.begin ## 功能 开启一个 MySQL 事务,并返回 `MysqlTransaction` 事务句柄。 ## 语法 ```bt tx = mysql(dsn).begin() ``` ## 参数 无参数。DSN 由 `mysql(dsn)` 提供。 ## 返回值 | 类型 | 说明 | | ------ | ------ | | MysqlTransaction | 事务句柄。事务内可继续调用 query、bind、all、one、exec、commit、rollback、close 和 status。 | ## 代码示例 ```bt 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` 时只记录耗时、方法名和绑定数量,不记录绑定值。