MySQL 데이터베이스 트랜잭션 및 PHP로 롤백을 할 수 있습니까?
-
06-09-2019 - |
문제
예 : 사용자 A에서 사용자로 지불 전송 B. 사용자 A : -10 USD 사용자 B : +10 USD
거래가 있고 무언가 잘못되면 모든 것이 취소됩니다. 따라서 트랜잭션의 경우 사용자 A의 계정이 10만큼 감소하는 반면, 사용자 B의 계정은 10만큼 증가하지 않습니다.
나는 Java 사람들이 모든 곳에서 거래와 롤백을 사용한다는 것을 알고 있습니다. 그러나 나는 PHP-Guys가 그렇게하는 것에 대해 들어 본 적이 없다.
올바른 솔루션이 없습니다
다른 팁
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
테이블이 사용되는지 확인하십시오 InnoDB
엔진: MyISAM
거래를 지원하지 않습니다.
댓글 업데이트:
InnoDB
사용되는 두 가지 주요 저장 엔진 중 하나입니다 MySQL
, 다른 하나는 MyISAM
.
MySQL
함께 제공됩니다 InnoDB
기본적으로 컴파일 된 지원은 실제로 비활성화하려면 약간의 노력이 필요합니다.
나는 들어 본 적이 없다 MySQL
~와 함께 InnoDB
가장 저렴한 호스스터에 의해서도 장애인.
PDO를 사용하는 경우 트랜잭션 지원도 있습니다.
http://us2.php.net/manual/en/pdo.begintransaction.php
이미 말했듯이 InnoDB 저장 엔진을 사용해야합니다.
제휴하지 않습니다 StackOverflow