phpmyadmin - count(): パラメータは配列またはCountableを実装するオブジェクトである必要があります質問する

phpmyadmin - count(): パラメータは配列またはCountableを実装するオブジェクトである必要があります質問する

バックアップをテーブルにアップロードしました。テーブルを開くと次のようになります。

Warning in ./libraries/sql.lib.php#601
count(): Parameter must be an array or an object that implements Countable

Backtrace

./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'alternativegirls',
string 'tgp_photo',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `tgp_photo`',
NULL,
NULL,
)
./sql.php#216: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'alternativegirls',
string 'tgp_photo',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `tgp_photo`',
NULL,
NULL,
)
./index.php#53: include(./sql.php)

phpMyAdmin 内部...

PHP は 7.2、サーバーは Ubuntu 16.04 で、昨日インストールされました。

調べてみると、コード内にこのエラーがある人がいるようですが、phpMyAdmin でこのエラーを受け取った人は見つかりませんでした...

どうすればいいでしょうか? これは私のエラーでしょうか? phpmyadmin エラーでしょうか? アップデートを待つべきでしょうか? PHP 7.1 に戻すべきでしょうか?

ベストアンサー1

次のコマンドを使用してファイルを編集します/usr/share/phpmyadmin/libraries/sql.lib.php

sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

613行目では、の後に閉じ括弧がないため、 count 関数は常に true と評価されます。 以下の置換を行うと、この問題が解決されます。その後、 614行目の最後の閉じ括弧は余分な括弧になったため、$analyzed_sql_results['select_expr']削除する必要があります。

交換する:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr'] == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*')))

と:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr']) == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*'))

サーバーのApacheを再起動します。

sudo service apache2 restart

おすすめ記事