草庐IT

TRANSACTIONS

全部标签

php - 如何将准备好的语句与 Transactions with PHP 结合使用?

我的目标是同时使用事务和准备好的语句,以实现数据的完整性和防止SQL注入(inject)。我有这个:try{$cnx=newPDO($dsn,$dbuser,$dbpass);$cnx->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$cnx->beginTransaction();$cnx->query("SELECT*FROMusersWHEREusername=$escaped_input");$cnx->query("SELECT*FROMothertableWHEREsome_column=$escaped_in

mysql - 存储 'debits'和 'credits'维护一个 'transactions'表

哪个是事务表的更好架构:customer_idtype(enum,'Debit'or'Credit')amount(decimal,unsigned)或customer_idamount(decimal,signed...negativenumbersaredebits,positivenumbersarecredits)第二个解决方案似乎更简单,但我担心我遗漏了一些潜在的陷阱。 最佳答案 第二个更简单,也更高效。将来查询变得更加容易,特别是余额查询。 关于mysql-存储'debits

java - 如何监控数据库事务?

我已经为薪资系统编写了一个web应用程序,它可以对mysql数据库执行(插入、更新、删除)操作。我想知道mysql数据库中发生了多少事务?在start_time和end_time期间mysql数据库中发生了多少事务? 最佳答案 MySQL有命令计数器。可以使用SHOWGLOBALSTATUSLIKE"COM\_%"查看它们。每次执行命令都会增加与其关联的计数器。与事务相关的计数器是Com_begin、Com_commit和Com_rollback。此外,Uptime是自服务器启动以来的秒数。读取这些值或它们的增量并将其绘制成图表会产

php - MySQLi 准备好的语句和事务

有没有办法用准备好的语句进行交易?我的意思是我可以将以下示例与$mysqli->autocommit(FALSE);和$mysqli->commit();和$mysqli一起使用吗->rollback();//Preparingthestatment$insert_stmt=$mysqli->prepare("INSERTINTOxVALUES(?,?)")ordie($mysqli->error);//associatevariableswiththeinputparameters$insert_stmt->bind_param("is",$my_number,$my_string)

MySQL:跨多个线程的事务

初步:我有一个维护大约100个线程的线程池的应用程序。在新任务取代它之前,每个线程可以持续大约1-30秒。当一个线程结束时,该线程几乎总是会插入1-3条记录到一个表中,这个表被所有线程使用。现在,不存在事务支持,但我现在正在尝试添加它。另外,有问题的表是InnoDB。所以……目标我想为此实现一个事务。此事务是否提交或回滚的规则驻留在主线程中。基本上有一个简单的函数会返回一个bool值。我可以跨多个连接实现事务吗?如果不是,多个线程可以共享同一个连接吗?(注意:这里有很多插入内容,这是一项要求)。 最佳答案 1)不,事务仅限于单个数据

mysql - 强制 Django 提交

设置:Python脚本A每15分钟向数据库插入一次数据Python脚本B每隔几分钟从数据库中查询一些最新条目两者都使用Django的ORM,在同一台机器上运行,使用本地MySQL数据库。问题:B获取条目(最新条目除外),即使A在分钟之前将其保存。我怀疑A没有关闭事务,因此B看到数据库没有最后一个条目。事实上,在检查MySQL日志时,我注意到每个INSERT的commit发生在nextINSERT之前。尽管它应该是多余的,但我向包含save()的A函数添加了@commit_on_success装饰器,但它没有帮助。如何强制Django(或MySQL?!)在save()之后立即提交?更新:

mysql - innodb 隔离级别和锁定

我正在阅读有关innodb事务的手册,但仍然有很多不清楚的地方。例如,我不太理解以下行为:--client1--client2mysql>createtablesimple(colint)engine=innodb;mysql>insertintosimplevalues(1);QueryOK,1rowaffected(0.00sec)mysql>insertintosimplevalues(2);QueryOK,1rowaffected(0.00sec)mysql>select@@tx_isolation;+-----------------+|@@tx_isolation|+---

java - JPA @Version 字段不会增加

我是JPA和Hibernate的新手,我对乐观锁定有疑问。我有一个类,它有一个带@Version注释的字段。当我更新由此类表示的实体时,版本计数器不会增加。这是我的代码:类(class):@Entity@Table(name="Studenten")publicclassStudentimplementsSerializable{privatestaticfinallongserialVersionUID=705252921575133272L;@Versionprivateintversion;privateintmatrnr;privateStringname;privateint

mysql - 如何从偏移量到表末尾求和()?

如果SELECTSUM(amount)FROMtransactionsORDERBYorderLIMIT0,50对表中前50条记录的amount字段求和,如何求和所有记录前50个之后?换句话说,我想执行类似SELECTSUM(amount)fromtransactionsORDERBYorderLIMIT50,*的操作,但这不起作用。 最佳答案 SELECTSUM(amount)FROM(SELECTamountFROMtransactionsORDERBYorderLIMIT50,1000000000000)q请注意您的原始查询:

php - PDO:交易不回滚?

我正在浏览thistutorial关于PDO并且已经到了关于交易的地步。跳过连接部分,我有这个php代码:try{$db->beginTransaction();$db->exec('DROPTABLEIFEXISTSanimals');$db->exec('CREATETABLEanimals('.'animal_idMEDIUMINT(8)NOTNULLAUTO_INCREMENTPRIMARYKEY,'.'animal_typeVARCHAR(25)NOTNULL,'.'animal_nameVARCHAR(25)NOTNULL)'.'ENGINE=INNODB');$db->e