PHP에서 mysql 확장을 사용하고 있습니다. PHP 5.5.0부터는 더 이상 사용되지 않습니다.하지만이 확장을 사용하여 작성한 많은 코드가 있습니다. mysql_query가 쿼리를 커밋하는 것처럼 보입니다. 그렇다면 자동 커밋으로 설정된다는 의미입니다. 설치 방법은 자동 커밋되지 않습니다.mysql_query가 모든 것을 커밋합니까?
2
A
답변
5
이전 mysql 확장에는 트랜잭션 제어를위한 기능이 특별히 없지만 SQL 문을 사용하여 원하는 작업을 수행 할 수 있습니다.
당신은 암시 적으로 간단하게 트랜잭션을 시작하여 하나의 트랜잭션 (transaction)의 기간에 대해 자동 커밋을 해제 할 수 있습니다
mysql_query("START TRANSACTION");
을하는 즉시 COMMIT 또는 ROLLBACK으로, 자동 커밋 모드는 기본으로 돌아갑니다.
mysql_query("SET GLOBAL autocommit=0");
: 그것은 모든 세션에 대한 기본을 변경 있도록
mysql_query("SET autocommit=0");
또는 MySQL의 인스턴스에 전 세계적으로 변경 :
mysql_query("COMMIT"); // or ROLLBACK
당신은 세션 변수를 설정하여 전체 세션에 대해 자동 커밋을 해제 할 수 있습니다
/etc/my.cnf를 편집하여 MySQL 서비스 시작시 전역 설정을 변경하도록 설정하십시오.
당신이 MySQL을 5.1을 사용하는 경우 0[mysqld]
autocommit=0
, 당신은 약간 다르게이 작업을 수행해야한다 :
는[mysqld]
init_connect='SET autocommit=0'
당신은 아마 이미 알고 있지만, 그것은 당신이 InnoDB의 테이블을 사용하는 경우 거래는 아무 의미가 있음을 반복 맺는다. MyISAM 테이블은 트랜잭션을 지원하지 않으므로 설정에 관계없이 항상 자동 커밋됩니다. MEMORY 및 CSV를 비롯한 여러 다른 스토리지 엔진과 동일합니다.
관련 문제
- 1. SQLAlchemy, 언제 커밋합니까?
- 2. PHP에서 mysql_query가 차단 기능입니까?
- 3. 분기 자체를 커밋합니까? - git
- 4. 수은이 자동으로 태그를 커밋합니까?
- 5. mysql_query가 성공시 false를 반환합니다.
- 6. mysql_query가 무엇을 반환했는지 확인
- 7. MySQL_Query가 데이터베이스를 구축하지 못했습니다.
- 8. Mysql_query가 데이터베이스로 보내지 않습니다.
- 9. 는 mysql_query가 제대로
- 10. PHP는 mysql_query가 작동하지
- 11. mysql_query가 리소스를 반환하지 않습니다.
- 12. Mysql_query가 작동하지 않습니다.
- 13. 수동 로그 스위치가 강제로 커밋합니까?
- 14. pdo_mysql을 설치할 때 mysql_query가 누락됩니다.
- 15. 다른 함수에서 mysql_query가 반환되지 않습니까?
- 16. PHP에서 mysql_query가 동시에 쿼리를 차단합니까?
- 17. SVN의 경고 팀 구성원이 커밋합니까?
- 18. Xcode 4 - 힘내 - 모두를 커밋합니까?
- 19. 어떻게 이전 버전을 복원하고 커밋합니까?
- 20. PHP mysql_query가 빈 값을 반환합니다.
- 21. 대신 mysql_query가 true를 반환합니다. 리소스
- 22. PHP mysql_query가 false를 반환하지 않습니다
- 23. mysql_query가 IIS에서 작동하지 않습니다 - 대안?
- 24. PHP : mysql_query가 숫자 대신 false를 계속 반환합니다.
- 25. mysql_query가 커스텀 PHP 함수에서 작동하지 않습니다.
- 26. mysql_query가 최신 PHP 버전에서 작동하지 않습니다.
- 27. mysql_query가 실행할 변수가 필요한 이유는 무엇입니까?
- 28. 모든 것을 파일에 기록하십시오.
- 29. 모든 것을 index.php로 리다이렉트
- 30. Symfony2 - 모든 것을 보호하십시오.
MySQLi를 사용하고 있다면 MySQLi :: autocommit을 할 수 있습니다. PDO를 사용한다면 PDO :: beginTransaction을 할 수 있습니다. 아무도 mysql_ *을 유지하는 것을 돕고 싶지 않습니다. –
mysql_ * 메소드를 사용하는 것이 가능하지 않다고 생각하면 최소한 mysqli로 업그레이드해야합니다. 이것은 mysql과 유사한 절차 스타일 연산을하기 때문에 최소한의 노력으로이 작업을 수행 할 수 있습니다. –
그래, 내가 추가 할 수있는 것을 볼 수있다. 그래서 mysqli를 사용할 것이다. –