phpMyAdminでcount(): Parameter must be an array or an object that implements Countable

2018.11.17

はじめに

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

これでエラーがでなくなったはずです。

Related.