PHP 8.1 에서 MYSQLI DB 콘넥션 할때 예제소스로 die 구문이 뒤에 붙게 되는데요
7버전대에서는 잘 되는거같은데 8.1에서는 연결성공하면 잘 나오고 실패했을때는
에러메세지가 안나옵니다 ㅡㅡ;
옵션을 켜줘야되는게 있나요
에러메세지 출력등급 설정해줘도 mysql die 구문만은 오류출력이 안되네요
※ 참고로 라이믹스 관련은 아니고
일반 기본코딩 관련 질문입니다.
PHP | PHP 8.1 |
---|
PHP 8.1 에서 MYSQLI DB 콘넥션 할때 예제소스로 die 구문이 뒤에 붙게 되는데요
7버전대에서는 잘 되는거같은데 8.1에서는 연결성공하면 잘 나오고 실패했을때는
에러메세지가 안나옵니다 ㅡㅡ;
옵션을 켜줘야되는게 있나요
에러메세지 출력등급 설정해줘도 mysql die 구문만은 오류출력이 안되네요
※ 참고로 라이믹스 관련은 아니고
일반 기본코딩 관련 질문입니다.
https://www.php.net/manual/en/language.exceptions.php
https://dev.epiloum.net/1140
어느 언어나 예외처리는 try ~ catch ~ 문을 사용하는게 정석입니다.
try문 가운데 예외가 발생할수 있는 가능성이 있는 작업(DB 연결 등)을 넣고 catch문에서 예외 발생시 처리를 해주면 됩니다.
php 5.1.0 이상부터 지원하는 구문이지만... 요즘은 php7도 지원이 되네 마네 하는 세상이니 크게 중요하진 않습니다.
p.s.) 이건 크게 중요하지 않은 내용입니다만... 라이믹스도 기존 return new Object(-1, "메세지") 형태의 오류처리를 예외를 발생시킨뒤 이걸 catch하는 방식으로 변경하고 있습니다.
$conn = mysqli_connect(...) or die(...);
20여전 전에 흔히 사용하던 이런 코딩 패턴을 말씀하시는 거라면, PHP 8.1에서는 DB 접속 실패시 false를 반환하지 않고 Exception을 던져버리기 때문에 or절로 들어가지 않습니다. 물론 Exception을 캐치하지 않으면 죽으니까, 내가 원하는 에러메시지가 나오지 않는다는 것을 빼면 프로그램이 죽는 것은 똑같다는...
제대로 에러처리 하지 않고 die로 퉁치는 소스는 이제 곱게 접어 분리수거함에 넣을 때가 되었지요? ㅎㅎ