
正文
thinkphp事务无法回滚的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
thinkphp可以跨模型使用事务回滚么
ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:启动事务:User-startTrans();提交事务:User-commit();事务回滚:User-rollback();事务是针对数据库本身的,所以可以跨模型操作的 。
事务是一组组合成逻辑工作单元的操作。简单的说 就是 操作几个相关的数据库时,保证每一步操作都完整,如果有错误,就返回到最开始。例如,从A 里面 减1 ,在给 B 里面 加1 这是一个过程。
在执行事务回滚的时候注意引入事务按步骤写代码执行。还有什么不懂可以追问。
相关问答
Q1: thinkphp6数据表锁定后不能更新
1、要具体方式具体分析,总得来说,流程就是接受浏览器POST来的数据,然后调用模型的save方法来更新,或者直接使用create方法来接受并初始化POST过来的数据。但需要注意的是,数据库里需要已存在这条数据。
2、POST数据过大,超过了PHP.ini里设置的post_max_size、upload_max_filesize等大小限制。
3、也可以先传到后台服务器然后使用(php)ftp上传,或者是通过curl上传到附件服务器,感觉那样毕竟麻烦,直接设置跨域会比较简单。也测试了使用jsonp跨域,但是不能上传附件。
4、还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。
Q2: PHP调用事务多次操作数据库时,应该怎么办
构造函数名要和类名匹配,所以应该是function __construct($user,$password),而不是function mysql($user,$password)。
这里强烈建议读写分离。用不通的数据库实例去分别处理读写。再看看磁盘 IO 性能。看看队列数据。不行就上阵列。或者单表部署单个磁盘。或者读写在不同的磁盘进行。当然用缓存也可以。
php调用mysql步骤:连接MySQL数据库;选择MySQL数据库;执行SQL语句;关闭结果集;关闭MySQL服务器。
事务 尽管我们可以使用子查询(Sub-Queries)、连接(JOIN)和联合(UNION)来创建各种各样的查询,但不是所有的数据库操作都可以只用一条或少数几条SQL语句就可以完成的。
关于thinkphp事务无法回滚和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







