phpMyAdminでcount(): Parameter must be an array or an object that implements Countable
はじめに
PHP7.2 の環境で phpMyAdmin を使って、データが入ってないテーブルを参照しようとしたとき、下記のようなエラーが発生します。
count(): Parameter must be an array or an object that implements Countable
このエラーの対処方法を紹介します。
原因を知る
下記のようなコードを実行すると、同様のエラーが発生します。
<?php
$x = null;
count($x);
phpMyAdmin のソースを修正する
ソースを修正する前に、バックアップを取っておきましょう。
sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak
修正するファイルは下記のファイルです。
/usr/share/phpmyadmin/libraries/sql.lib.php
下記のような記述がありますので、vi などでファイルを開いて検索してください。
修正前:(count($analyzed_sql_results['select_expr'] == 1)
修正後:(count($analyzed_sql_results['select_expr']) == 1)
修正が終わったら、apache を再起動します。
sudo service apache2 restart
これでエラーがでなくなったはずです。