mysql mysqli 다른점
안녕하세요. 고코더 입니다.
두 개의 함수가 다른 점을 필요한 내용만 정리 해보겠습니다.
1. php 5 이상에서는 mysqli
mysql 함수는 5 이하에서 사용하던 방식이었습니다.
(5부터는 확장하면 사용이 가능합니다.)
mysqli 함수는 현재 최신 버전 7에서 기본
사용 가능합니다.
▼ connect 기능 중심으로 문서를 비교 해보겠습니다.
기존의 mysql_connect는 php 4와 5 버전이라고 나와 있습니다. 오랫동안 함께 해온 mysql 함수입니다.
▼하지만 mysqli는 php 5와 7을 쓰라고 명시 해났습니다.
그리고 7에서는 mysql을 쓸 수 없습니다.
결론적으론 7부터는 mysqli 만 사용이 가능합니다.
혹시 php5 버전이라면 mysqli로 변경하시길 추천드립니다.
2. 디폴터 커넥션 허용되지 않음
가장 많이 쓰는 _query 함수를 비교해보겠습니다.
▼ 기존의 query함수는 연결 변수를 받지 않아도 사용이 가능하였습니다.
▼mysqli 부터는 link 값을 받게 되었습니다. 우리가 자연스럽게 사용하던 디폴트 커넥션 기능이 끊겼습니다.
연결시에 반환 된 값을 파라미터에 담아줘야 합니다.
파라미터 순서도 변경 되어서 연결 부분은 수정해줘야 합니다. 헷갈려서 쓰지 말라는 PHP의 배려입니다.
mysql의 버전 대비와 보안 향상을 위한 조치인 것으로 보입니다. 그래도 덕분에 속도 면에서는 강력하게 향상되었습니다
PHP7에서 많은 변화가 이루어졌고 그중에 대표적인 사례가 mysql, mysqli 의 차이가 아닐까 싶습니다.
기존 mysql 함수로 만들어진 DB 헬퍼 소스를 못쓰게 된 게 많으니 버전 업을 생각하신 분들은 mysqli로 수정 개발을 고민을 해보시는게 좋을거 같습니다.
마무리
발전은 좋은데 변화가 많네요.
'IT_Developers > PHP' 카테고리의 다른 글
PHP - print_r() / 배열 값 내용 확인하기 (0) | 2018.04.25 |
---|---|
PHP - DB 연결 후 출력시 글자 깨짐 (0) | 2018.04.23 |
PHP - array_rand() / 랜덤 함수 배열에서 숫자 뽑기 (0) | 2018.04.13 |
Nginx - An attempt was made to access a socket in a way forbidden by its access / 서버 시작 불가 오류 (0) | 2018.04.09 |
PHP - Use of undefined constant / error (0) | 2018.04.03 |
댓글