문제

예 : 사용자 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 저장 엔진을 사용해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top