十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。
公司主营业务:成都网站制作、做网站、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出利通免费做网站回馈大家。
本文仅讨论binlog未打卡状态下的提交流程,后续会讨论打开binlog选项后的提交逻辑。
解决方案之一,就是把你的所有操作放在一个连接中执行完毕。mysql
-h${HOSTNAME}
-P${PORT}
-u${USERNAME}
-p${PASSWORD}
${DBNAME}
x.sqlset
AUTOCOMMIT=0;start
transaction;在X.sql
中你可以写入语句。中间部分是一些数据库的操作,如移表,删除等commit;
mysqli::autocommit -- mysqli_autocommit — 打开或关闭本次数据库连接的自动命令提交事务模式
说明
面向对象风格
mysqli::autocommit ( bool $mode ) : bool
过程化风格
mysqli_autocommit ( mysqli $link , bool $mode ) : bool
打开或关闭本次数据库连接的自动命令提交事务模式。
如需要确认当前连接的自动事务提交状态,可执行这个SQL请求SELECT @@autocommit.
参数
link
仅以过程化样式:由mysqli_connect() 或 mysqli_init() 返回的链接标识。
mode
Whether to turn on auto-commit or not.
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
注释
Note:
这个方法不会在不支持事务处理的表单查询中生效,如MyISAM或 ISAM。