【php利用事务处理转账问题,php事务处理转账_PHP教程】教程文章相关的互联网学习教程文章

php-如何确定MySQL事务是否成功【代码】

在对MySQL的常规单个查询语句中,我可以使用mysql_affected_rows()== 1来确定是否更新了某些内容.现在假设我正在尝试执行以下事务:USE myDB; START TRANSACTION; UPDATE members SET member_active=0 WHERE member_id = 53; UPDATE member_subscriptions SET subscription_active=0 WHERE member_id = 53; COMMIT; ROLLBACK;由于我有这两个update语句,我是否应该在成功的事务上等于mysql_affected_rows()== 2? 或者,是否有更好的方...

php-MySQL事务是否锁定InnoDB中正在更新和/或选择的行【代码】

使用InnoDB,MySQL事务在调用BEGIN时是否锁定新创建的行,然后在调用commit时将其解锁?例如:$query = "INSERT INTO employee (ssn,name,phone) values ('123-45-6789','Matt','1-800-555-1212')"; mysql_query("BEGIN"); $result = mysql_query($query); mysql_query("COMMIT);INSERT语句会锁定该行直到调用COMMIT还是回滚以防止其他并发连接对其进行修改?如果不是,您是否只能通过调用select FOR UPDATE锁定阻塞读取和任何修改的...

PHP-SQL事务和表SELECT LOCK的说明【代码】

我有一个有关在线交易的问题,想用SELECT和UPDATE查询来阐明以下问题. 我将使用以下示例向您解释. X正在进行在线交易.他的帐户余额为$1000.他打算购买200美元的物品,然后他的帐户余额应为800美元.那也行;现在让我进一步阐述一下Begin DB transaction.Step 1: account balance is $1000{Select the balance from a different script}Step 2: Buy something for $200{Select the balance from another script}Step 3: Remaining balan...

PHP-如何在MySQL的Silverstripe 3.3中使用事务?【代码】

Silverstripe 3.3是否支持MySQL事务?如果是这样,可以与ORM一起使用吗? 我找不到有关此主题的任何文档.一个例子将是非常好的.解决方法:如Shadow所述,您无需担心事务,因为SilverStripe会在内部处理它们. 话虽如此,如果您需要显式地执行某项操作,则可以执行以下操作:try {DB::getConn()->transactionStart();// do stuff...DB::getConn()->transactionEnd(); } catch (Exception $e) {DB::getConn()->transactionRollback(); }参见...

如何开始和回滚数据库事务以包装用于Magento的PHPUnit套件【代码】

我想使用事务回滚方法隔离数据库以进行单元测试.理想情况下,我将使用类似以下的结构:public static function setUpBeforeClass(){Mage_Core_Model_Resource_Transaction::beginTransaction(); }public function testOne(){...} public function testTwo(){...}public static function tearDownAfterClass(){Mage_Core_Model_Resource_Transaction::rollBack(); }不幸的是,Mage_Core_Model_Resource_Transaction类没有公开公共的be...

php-无法在Laravel(DB :: beginTransaction)的Controller中使用数据库事务【代码】

我有一个具有存储方法的DoctorsController.我正在测试此方法,并且希望我的模型不要在测试环境中插入其数据.因此,我在控制器和测试方法中使用了DB :: beginTransaction,DB :: rollback(),DB :: commit()方法来防止INSERT查询.我的问题是=>我的测试运行时数据库正在记录.我在测试期间不需要任何插入内容. 我的测试代码:public function testStoreMethod() {/** Test when validation fails*/$data = include_once('DoctorsControlle...

PHP-一个MySQL或MariaDB事务中可以使用多少个查询【代码】

一个MySQL / MariaDB事务中可以使用几个查询? 事务中使用的查询数量是否有限制?目前,我已经对一个大型ZF1项目进行了测试,该交易具有175,000个查询,并且工作正常! 该事务将每月执行一次,但是将来可以增加查询数量. 增加交易量时,查询数量是否有限制,或者存在性能问题?$db = Zend_Db_Table_Abstract::getDefaultAdapter();// begin database transaction $db->beginTransaction();try {// here comes the bulk processing with i...

使用以下代码,MySQL中的PHP“嵌套”事务是否可能成为现实?【代码】

好的,我正在寻找使用PHP在MySQL中进行“嵌套”事务的解决方案,并且正如您在MySQL文档中所知的那样,不可能在事务内进行事务(Mysql transactions within transactions).我试图使用http://php.net/manual/en/pdo.begintransaction.php中建议的Database类,但不幸的是,这对我来说是错误的,因为它的计数器范围是对象级别而不是类级别,为了解决此问题,我创建了具有计数器(名为$nest)的此类(TransactionController)静态的,它带来了使事务“...

php-MySQL上数据库事务内的Codeception验收测试【代码】

使用Codeception为我们的Custom(带有Symfony组件和Doctrine)框架编写验收测试.我们有一套实用方法,供我们的Phpunit测试分别使用,用于创建要测试的各种实体.这包括诸如用户和其他相关数据之类的东西. 就我们的Codeception测试而言,我们希望利用此功能,使我们可以播种自定义数据并在之后进行清理.在我们的单元测试中,这是由事务处理的.鉴于Codeception通过Phantomjs通过HTTP向我们的应用程序发出请求,因此它无法利用事务,因为已为测试...

PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理【代码】【图】

相关文章:PHP的mysql扩展整理,操作数据库的实现过程分析 介绍 mysqli是PHP程序与mysql数据库进行数据交互的桥梁,它支持面向过程和面向对象两种方式 面向过程方式 现在面向对象编程已经成为了主流,mysqli面向过程化的编程方式可能已经没有太多实用价值,但是通过面向对象的和面向过程两种方式实现同一段代码,对体会对象和过程两种编程思想还是很有意义,个人觉得这个比较十分有趣! 流程图: 实例:<?php header("content-type:t...

php – Laravel数据库事务无法正常工作【代码】

我正在尝试在Laravel 5.5中设置数据库事务,但它似乎不起作用.我使用MySQL 5.7.20,工具架构中的所有表都是InnoDB.我也在运行PHP 7.2.3. 我有这个代码:DB::beginTransaction(); try {// checks whether the users marked for removal are already assigned to the listforeach ($removeStudents as $removeStudent) {if ($ls->allocatedStudents->find($removeStudent->id) === null) {throw new Exception('userNotAllocated', $re...

php – MySQL事务是原子的吗?【代码】

我已经读过MySQL(InnoDB)中的事务是原子的,但是当我在5个线程中测试下一个代码时,它们会选择相同的ID:$db->beginTransaction();$row = $db->fetchRow("SELECT * FROM atomic WHERE selected = 0 LIMIT 1");sleep(5);$db->update("atomic", array('selected' => 1), "id = " . $row['id']);$db->commit();echo "Selected row: " . $row['id'];解决方法:您应该查看此方案中的FOR UPDATE关键字. 简单的选择不会锁定选定的行,因此您在...

有可能用PHP做mysql数据库事务和回滚吗?【代码】

示例:进行从用户A到用户B的付款转帐.用户A的帐户:-10美元用户B的帐户:10美元 如果有交易,出现问题,一切都会被取消.因此,对于交易,用户A的帐户不会减少10,而用户B的帐户不会增加10. 我知道java人们在各处都使用了事务和回滚.但我从来没有听说过那些PHP人员这样做.解决方法: $db = new mysqli("localhost", "", "", ""); $db->autocommit(FALSE); if ($db->query("INSERT ..."))$db->commit(); else$db->rollback();确保您的表使用...

php – 文件数据库事务安全【代码】

我有一个MySQL表,它基本上作为文件索引.每条记录的主键也是我的Web主机上目录中的文件名. 当用户想要从系统中删除文件时,我想确保某种事务的安全性,即如果在删除文件时出现问题,则记录不会被删除,如果由于某种原因数据库服务器死了,文件就会赢得’被删除.发生的任何事件都不太可能,但如果有任何问题的可能性,我想要阻止它. 不幸的是,我完全不知道如何实现这一点.我是否需要找出不太可能失败的问题,并简单地假设它永远不会失败?有没...

通过php在mysql中实现事务【代码】

以下是我的疑问$db= new mysqli('localhost','user','passcode','dbname'); try { // First of all, let's begin a transaction $db->beginTransaction();// A set of queries; if one fails, an exception should be thrown $query1="insert into table1(id,name) values('1','Dan')"; $query2="insert into table2(id,name) values('2','Anaba')";// If we arrive here, it means that no exception was thrown // i.e. no query...