1 2 3 4 5 6 L

Page Header > Subtitle

PHP & MySql 트랜잭션 처리방법

 

  1. /**
  2.  * 트랜잭션 성공여부를 저장하는 변수 선언
  3.  */
  4. $success = true;
  5.  
  6. /**
  7.  * 트랜잭션 시작
  8.  */
  9. sql_query( "START TRANSACTION" );
  10.  
  11.  
  12. /*
  13.  * 데이터를 등록하는 경우
  14.  */
  15. $sql = "INSERT ----";
  16. $rs = sql_query( $sql );
  17. $affected_rows = 1// 적용되어야할 로우수를 설정
  18. if ( @mysql_errno() || @mysql_affected_rows() != $affected_rows ) { $success = false}
  19.  
  20. /*
  21.  * 데이터를  수정하는 경우
  22.  */
  23. $sql = "UPDATE ----";
  24. $rs = sql_query( $sql );
  25. if ( @mysql_errno() ) { $success = false}
  26.  
  27.  
  28. /*
  29.  * 데이터를 삭제는 경우
  30.  */
  31. $sql = "Delete ----";
  32. $rs = sql_query( $sql );
  33. $affected_rows = 1// 삭제되어야할 로우수 설정(3개 테이블 조인일 경우 3입력)
  34. if ( @mysql_errno() || @mysql_affected_rows() != $affected_rows ) { $success = false} // 삭제할 데이터 수에 따라 $affected_rows 를 조정해 준다.
  35.  
  36. /**
  37.  * 커밋 또는 롤백
  38.  */
  39. if ( $success == true ) {
  40.     sql_query( "COMMIT" );
  41. } else {
  42.     sql_query( "ROLLBACK" );
  43. }

2번째 예제

//

  1. // 작업 성공여부를 나타내는 플래그
  2. $success = true;
  3.  
  4.  
  5. // 트랙잭션을 시작한다.
  6. $result = @mysql_query("SET AUTOCOMMIT=0"$conn);
  7. $result = @mysql_query("BEGIN"$conn);
  8.  
  9.  
  10. // 첫번째 작업 수행
  11. $insertquery  = "INSERT INTO tbl1 (f1, f2) values (\'aa\', \'bb\')";
  12. $result = @mysql_query($insertquery$conn);
  13. if(!$result || @mysql_affected_row($result) == 0) $success = false;
  14. // 두번째 작업 수행
  15. $insertquery  = "INSERT INTO tbl2 (f1, f2) values (\'aa\', \'bb\')";
  16. $result = @mysql_query($insertquery$conn);
  17. if(!$result || @mysql_affected_row($result) == 0) $success = false;
  18.  
  19.  
  20. // 작업 성공/실패 여부에 따라 COMMIT/ROLLBACK 처리한다.
  21. if(!$success) {
  22.     $result = @mysql_query("ROLLBACK"$conn);
  23.     echo ("롤백되었습니다.");
  24. } else {
  25.     $result = @mysql_query("COMMIT"$conn);
  26.     echo("입력되었습니다.");
  27. }

 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

Db/others

번호 제목 글쓴이 날짜 조회수
21 [MySQL] Load Data 시도 중 secure_file_priv 문제 직면 미도어묵 10-23 337
20 파이썬을 이용한 금융 데이터 수집에 좋은 사이트 미도어묵 07-10 462
19 2013년도 시군구 주소 미도어묵 05-11 267
18 MySQL Incorrect datetime value: '0000-00-00 00:00:00' 미도어묵 12-15 263
17 ySQL 데이터베이스에서 mysqldump 명령어를 이용한 procedure, function, trigger 포함 백업 및 복구 방법 미도어묵 11-08 257
16 cloudflare CDN 미도어묵 09-28 270
15 소스 비교 체크 url 관리자 09-14 322
14 정보통신 표준화 위원회에서 "WoT를 위한 RESTful API 지침" 관리자 09-13 252
13 [redUTF8] euc-kr <==> UTF8 파일 캐릭터셋 일괄변경 관리자 07-19 286
12 인기무료 사진을 한번에 찾을 수 있는 FindA.Photo 관리자 04-25 291
11 사용이 쉽고 강력한 슬라이더 jQuery플러그인 모음8가지 관리자 04-25 299
10 고해상도 무료 이미지를 제공하는 웹사이트 8곳 관리자 04-22 287
9 Composer 한국어 매뉴얼 관리자 04-04 303
8 액티브레코드에 IF문 사용하기 관리자 04-04 310
7 국가별 아이피 대역 msyql 테이블 관리자 04-04 310
6 Atom 필수 플러그인 리스트 (Can’t live without it) +2 관리자 03-20 584
5 sql example 관리자 03-19 274
4 WoT RESTful API 를 위한 지침 관리자 03-11 296
3 Sublime Text 설치 후 초기 세팅하기(기본 플러그인 포함) 관리자 03-09 648
2 PHP & MySql 트랜잭션 처리방법 +1 관리자 03-09 298