본문 바로가기

프로그래밍/PHP

PHP DB트랜잭션(DB Transaction) 처리방법 PHP에서 데이터베이스 프로그래밍을 할때, DB트랜잭션을 사용해야될 사항이 많이 생깁니다. DB트랜잭션이 필요한 대표적 사례는 ATM기기 입니다. A사용자가 은행에서 돈을 인출하다가 돈은 인출되었는데, 시스템 전상에 문제가 생겨 뻑이나서 시스템을 키니 인출한 금액을 DB에 반영하여 삭감하지 못했거나, 인출금액을 받지 못하는 등 상황에서 필요한것이 데이터베이스 트랜잭션 입니다. (자세한 사항 : http://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98) PHP 에서는 기본적으로 AUTO_COMMIT 이 활성화 되어있습니다. mysqli_query 함수를 사용하여 SQL 쿼리를 바로 데이터베이스에 반영하게 됩니다. DB트랜잭션을 사용하기 위해서는 .. 더보기
연결 커넥션에서 INSERT 한 마지막 ID값 구하기 PHP 에서 데이터베이스 프로그래밍시, 1개의 테이블에 데이터를 삽입하고, 바로 삽입한 데이터의 ID 필드 값을 구해와야 하는 경우가 생길때가 있습니다. 예를들어, 1번 테이블은 사용자와 관련된 정보 테이블 A, 사용자와 관련된 여러개 이미지가 존재하는 테이블 B (B테이블 존재하는 이유는 사용자와 관련된 이미지 패스를 무제한으로 저장한다는 가정하 정규화에 의거 설계된 테이블) A사용자 데이터를 INSERT 하여 데이터를 삽입후, 바로 B테이블에 이미지 패스를 삽입해야하는 두번의 INSERT 가 필요하게 됩니다. 이때, SELECT MAX(`id`) FROM `A` 를 통해 마지막 삽입된 ID 를 가져오게 해서, 해당 ID를 가지고 B테이블에 데이터를 삽입하겠죠. 하지만 1가지 문제가 있습니다. 다중 사.. 더보기
CR Administrator 제작중 가동 환경 - CR운영목적 APM 이 설치된 컴퓨터 (근데 APM 다룰줄 모르는 사람은 없겠죠) lib 폴더내 database.php 에만 자신의 DB정보만 입력해주시면 됩니다. HTML5 기준으로 제작된거라 다른 브라우져는 안써봐서 스타일이 깨질수도? 있을듯...? 현 기능 - 유저 정보 검색 / 아이템 소지 유져 검색(중복 검색 방지) (CR SQL 특성상 아이템 이름이 item_db 내 번호로 입력되기 때문에 한글검색이 안되요 추후 컨버터를 만들어서 해야하는데 이건 나중에..) 기타 NOMELIX ENCODER FOR PHP(NEP) 라는 PHP 소스 암호화를 이용해서 소스는 암호화후 1차 배포 했음.. (안전한건가? ㅋㅋ) 더보기