我已经上传了备份到一个表,打开表我看到这个:

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?


当前回答

编辑/usr/share/phpmyadmin/libraries/sql.lib.php文件

在错误上看到一个错误

./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(

转到这一行并删除函数调用。

这对我很管用。

其他回答

我在使用windows时遇到了这个问题,上面的响应为我解决了这个问题,但是当我切换到linux (ubuntu 18.04 LTS)时,我也有同样的问题,不知道如何解决,因为我没有看到文件“/usr/share/phpmyadmin/libraries/sql.lib.php”。

这个sql.lib.php文件不在我的/opt/lampp目录的共享文件夹或phpmyadmin/libraries文件夹中-因为我在我的ubuntu上使用xampp。 基于对xampp的更新(因为到目前为止我使用了最新的安装)设置。

答案仍然是替换:(count($analyzed_sql_results['select_expr'] == 1)

With: (count($analyzed_sql_results['select_expr']) == 1

但是,要查找的文件是/opt/lampp/phpmyadmin/libraries/classes/Sql.php中的Sql.php

如果您仍然没有找到它,请使用grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin在您的目录中搜索匹配的文档并进行相应的编辑

这在PHPMyAdmin的后续版本中得到了修复。Ubuntu 18.04.2的Ubuntu软件库的版本是4.6.6.5,而它们目前的版本是4.9.0.1。更新PHPMyAdmin安装可以解决这个问题,但是可能比仅仅编辑一行代码风险更大。下面是我在我的Ubuntu服务器上是怎么做的。对于所有操作系统,步骤本质上是相同的(只是路径不同)。

下载PHPMyAdmin。

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
unzip phpMyAdmin-4.9.0.1-all-languages.zip

备份旧的PHPMyAdmin安装。

cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup

在旧的PHPMyAdmin上删除新的PHPMyAdmin

cd phpMyAdmin-4.9.0.1-all-languages
rm -r /usr/share/phpmyadmin/doc/html
cp -R * /usr/share/phpmyadmin/

验证它是否有效。如果没有,那么……您有备份,因此恢复它并手动编辑故障行。根据我个人的经验,我发现4.6.6.5版本不仅漏洞百出,而且与新的4.9.0.1相比速度也慢得令人难以置信。对于我认为是“WordPress”质量的东西来说,速度的提高是纯粹的魔法。

我看到你们都在编辑或更新我们的文件

对于那些想要自动更新的人,你可以使用我们的Ubuntu PPA

Sudo add-apt-repository ppa:phpmyadmin/ppa

对于Debian用户,您需要等待Debian的下一个版本或使用PPA

Ubuntu 20有phpMyAdmin 4.9或更高版本

我们的跟踪器上的Debian问题

我们跟踪器上的可数问题

TLDR 请更新到最新的4.9或5.0版本以解决此问题。

Ubuntu 18.10(2018年12月)

第613、614、615行,替换为:

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

尝试在文件中替换此函数: /usr/share/phpmyadmin/libraries/sql.lib.php

function PMA_isRememberSortingOrder($analyzed_sql_results)
{
    return $GLOBALS['cfg']['RememberSorting']
        && ! ($analyzed_sql_results['is_count']
            || $analyzed_sql_results['is_export']
            || $analyzed_sql_results['is_func']
            || $analyzed_sql_results['is_analyse'])
        && $analyzed_sql_results['select_from']
        && ((empty($analyzed_sql_results['select_expr']))
            || (count($analyzed_sql_results['select_expr']) == 1)
                && ($analyzed_sql_results['select_expr'][0] == '*'))
        && count($analyzed_sql_results['select_tables']) == 1;
}