PHP에서 데이터베이스 작업을 하다 보면 갑자기 화면이 하얀색으로 변하면서 'Fatal error: Uncaught PDOException' 메시지가 뜬다. 에러 메시지를 읽어보면 Connection refused니 Access denied니 하는데, 정확히 어디가 문제인지 모르겠고, 같은 코드가 로컬에선 잘 돌아가니까 더 답답하다. 다만 대부분의 개발자들···
MySQL 5.7에서 8.0으로 버전을 올려서 최신 DB 환경을 구축했거나 Docker로 MySQL 인스턴스를 새로 띄운 뒤 PHP로 접속을 시도하다가 SQLSTATE[HY000] [2054] 에러를 마주친 적이 있을 것이다. DB 서버는 올바르게 동작하고 접속 정보도 분명 정확한데 PHP 스크립트를 실행하는 즉시 커넥션이 튕겨나간다.다만 정확한 원인이나 ···
복잡한 결제 처리나 회원 가입 과정에서 여러 개의 데이터베이스 쿼리를 연속으로 실행하다가 중간에 에러가 발생하여 데이터가 꼬인 경험이 있을 것이다.다만 트랜잭션의 정확한 작동 원리나 예외 처리 방식을 모른 채 개별 쿼리만 연속으로 던지는 개발자가 많다.이번에는 PHP PDO 환경에서 데이터 정합성을 완벽하게 보장하는 트랜잭션(Transaction)의 기본 ···
데이터베이스 연결 작업을 하다 보면 갑자기 PDOException이 튀어나와서 당황한 경험이 있을까? 많은 개발자들이 에러 메시지를 읽고도 정확히 뭐가 문제인지 모른 채 구글링으로 찾은 코드를 그냥 복사해 붙인다. 다만 같은 해결책이 항상 먹히는 건 아니고, 상황에 따라 원인이 완전히 다를 수 있다는 게 함정이다. 이번에는 PDOException의 종류별 ···
웹애플리케이션을개발하면서사용자입력을받아데이터베이스쿼리를실행하다가보안경고나예상치못한에러를경험해봤을까?다만SQL인젝션의정확한원인이나PreparedStatement가이를어떻게차단하는지내부원리를모른채구글링한코드를그대로붙여넣는경우가많다.이번에는PDO의PreparedStatement가정확히뭔지,왜단순한문자열치환보다안전하고강력한지,실무에서어떻게안전하게작성하는지완벽하게정···