phpmyadmin - count():参数必须是实现可数的数组或对象最简单的方法:手动方法:

2022-08-30 05:49:37

我已将备份上传到一个表,打开表时,我看到以下内容:

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

答案 2

最简单的方法:

只需在终端中运行下面的命令行,然后返回PhpMyAdmin。

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

手动方法:

打开 sql.lib.php 文件

nano /usr/share/phpmyadmin/libraries/sql.lib.php

查找文件上的代码。您可以在第~613行获得此内容。你可以在下面看到这个错误的代码count($analyzed_sql_results['select_expr']

|| (count($analyzed_sql_results['select_expr'] == 1)

只需将错误的代码替换为下面的代码

|| ((count($analyzed_sql_results['select_expr']) == 1)

保存文件并访问PhpMyAdmin


推荐