[PHP] phpmyadmin에서 count(): Parameter must be an array or an object that implements Countable 에러 해결
phpmyadmin을 연동해서 즐거운 마음으로 DB를 만들고 테이블을 하나 만들었는데 갑자기 아래로 스크롤이 이동하면서 빨간 배경의 에러 문구들이 나오는 경우가 있다.
그리고 에러 문구는 제목처럼 count(): Parameter must be an array or an object that implements Countable인 경우가 있다.
이 에러는 생각보다 쉽게 해결할 수 있다. 하도 많이 나오는 에러인지 스택오버플로우에도 추천수가 1,000이나 되는 답변글이 달려있다.
먼저 Putty나 다른 SFTP 툴을 사용해서 서버에 연결한 뒤, sudo su 같은 명령어를 입력해 루트 계정으로 전환한다.
그 다음 vi /usr/share/phpmyadmin/libraries/sql.lib.php을 입력한다. vi는 리눅스의 에디터 툴을 부르는 명령어인데 vi말고도 vim, nano같은 여러 명령어가 있으니 마음에 드는 걸 쓰자.
명령어를 쓰기 전에 각 에디터의 명령어를 모른다면 미리 확인하고 오길 바란다.
저 명령어를 치고 /를 누른 다음 ((empty($analy만 입력해본다. 그러면 커서가 어딘가로 이동하면서 이런 화면이 나올 것이다.
빨간색 네모 부분이 되도록 'select_expr'을 감싼 대괄호의 오른쪽에 닫는 소괄호를 추가하고, 그 아래줄의 '*' 오른쪽에 있는 닫는 소괄호 3개 중 하나를 지워준다.
그 다음 ":wq"를 눌러 저장하고 종료한 뒤, sudo service apache2 restart를 통해 웹 서버를 재시작한다.
마지막으로 phpmyadmin에 로그인한다. 이미 로그인 중이었다면 로그아웃한 뒤 재로그인하면 된다.
그러면 에러가 사라져있는 걸 볼 수 있다. 간단하게 해결할 수 있는 에러다.
요약
- sudo su
- vi /usr/share/phpmyadmin/libraries/sql.lib.php 입력
- "/((empry[$analy"만 입력 후 빨간 네모 부분이 되도록 코드 수정한 뒤 저장 후 종료
- phpmyadmin 로그인 또는 로그아웃 후 재로그인