草庐IT

TRANSACTIONS

全部标签

mysql - codeigniter 交易 - trans_start trans_complete trans_status

只是想弄清楚为什么造假者的交易没有按照我预期的方式进行。此交易trans_status()触发“TRANSSUCCESS”:$this->db->trans_start();$this->db->query("UPDATE`TABLE1`SET`NAME`='AAA'WHERE`ID`='1'");$this->db->query("UPDATE`TABLE2`SET`NAME`='BBB'WHERE`ID`='2'");$this->db->trans_complete();if($this->db->trans_status()===FALSE){//Checkiftransact

php - 在交易过程中重新加载页面

如果用户在交易过程中停止页面完全加载然后刷新页面,交易是否会应用两次? 最佳答案 简短的回答是-你必须检查。即使一个查询没有正确执行,交易也会失败。然而,真正的问题是——如果用户中止加载,这并不意味着服务器将停止执行代码。中止页面加载仅意味着用户决定不接收返回的数据。您的Web服务器不必遵守,PHP也不必遵守-他们甚至可能不知道用户关闭了管道这一事实。现在我们进入了一个完全不同的游戏领域——PHP可以嵌入到服务器中,也可以充当独立服务器(称为php-fpm)。如果PHP通过mod_php嵌入到服务器(例如Apache)中-Apach

PHP PDO - 没有事件事务

我在php脚本中遇到交易问题。如果至少其中一个失败,我想进行多次查询并能够全部召回。您可以在下面找到我正在使用的脚本的简单示例:$tags_input=array(6,4,5);$conn=newPDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8',DB_USER,DB_PASSW,array(PDO::ATTR_EMULATE_PREPARES=>false,PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAME

php - Laravel 时间戳在没有明确调用的情况下被更新

所以我在Laravel更新和保存方面遇到了一个烦人的问题。我有一个模型/表Invoice和invoices,它有一个时间戳sent_at。发票.phpclassInvoiceextendsModel{protected$dates=["sent_at",];}我有以下更新Invoice的函数:InvoicesController.php:publicfunctionpostPayInvoice(Request$request,$invoiceId){$user=$this->apiResponse->user;$invoiceItemIds=$request->input("invoi

php - 是否可以使用 php 进行 mysql 数据库事务和回滚?

示例:从用户A向用户B进行付款转账。用户A的账户:-10美元用户B的账户:+10USD如果有交易,但出现问题,一切都会被撤销。因此,对于交易,不会发生用户A的帐户减少10,而用户B的帐户不会增加10。我知道java人员到处都在使用事务和回滚。但我从未听说过PHP人员这样做过。 最佳答案 $db=newmysqli("localhost","","","");$db->autocommit(FALSE);if($db->query("INSERT..."))$db->commit();else$db->rollback();确保您的表

mysql - 为什么 groovy withTransaction 不在 SqlException 上回滚?

使用以下内容importgroovy.sql.Sqldefsql=Sql.newInstance("jdbc:mysql://localhost:3306/eventDb","user","pwd","com.mysql.jdbc.Driver")defsqlInsert="INSERTINTOGTEST(EVENTID,TSTAMP,USER_ID,USER_FIRST_NAME)VALUES(?,?,?,?)"defsqlParams=['EVENTID':0,'TSTAMP':'','USER_ID':'janew','USER_FIRST_NAME':'janewithaver

MySQL - 当更新命令被中断时会发生什么?

我通过MySQL命令行客户端发出了一个长时间运行的UPDATE查询(一个不正确的查询),并在几秒钟后用Ctrl-C停止了它。该命令尚未完成运行。我的数据库是否会针对某些条目进行更新,还是会在事务中发生并且所有内容都会回滚?mysql>^CCtrl-C--sending"KILLQUERY12088743"toserver...Ctrl-C--queryaborted.ERROR1317(70100):Queryexecutionwasinterruptedmysql>更新:查询涉及的表均为InnoDB表。 最佳答案 对于INNODB

java - JPA 和 MySQL 事务隔离级别

我有一个native查询,可以批量插入到MySQL数据库中:Stringsql="insertintot1(a,b)selectx,yfromt2wherex='foo'";EntityTransactiontx=entityManager.getTransaction();try{tx.begin();introwCount=entityManager.createNativeQuery(sql).executeUpdate();tx.commit();returnrowCount;}catch(Exceptionex){tx.rollback();log.error(...);}此

php - 文件+数据库事务安全

我有一个基本上用作文件索引的MySQL表。每条记录的主键也是我的虚拟主机上目录中文件的名称。当用户想从系统中删除文件时,我想确保某种事务安全,即如果在删除文件时出现问题,记录不会被删除,如果数据库服务器由于某种原因挂掉了文件不会被删除。发生这两种情况的可能性很小,但如果有哪怕是最微小的问题发生的可能性,我都想阻止它。不幸的是,我完全不知道如何实现它。我是否需要弄清楚哪个不太可能失败,并简单地假设它永远不会失败?是否有任何已知的最佳实践?哦,更重要的是——我的虚拟主机只支持MyISAM表,所以我没有MySQL事务。以防万一,我使用PHP作为我的服务器端脚本语言。

php - 如何检测MySQL存储过程中的回滚?

我试图找出一种方法来检测MySQL存储过程中是否发生回滚,以便我可以从PHP脚本中相应地处理这种情况,但到目前为止我找不到任何解决方案。我的存储过程是这样的:delimiter|createproceduremulti_inserts(INvar1int(11),...INstring1text)BEGINdeclareexithandlerforsqlexceptionrollback;declareexithandlerforsqlwarningrollback;STARTTRANSACTION;insertintotable1(a,b,c,d)values(var1,var2,v