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

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?


当前回答

这对我很管用;

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

线路:614

替换两个代码:

替换:

(count($analyzed_sql_results[‘select_expr’] == 1)

:

(count($analyzed_sql_results[‘select_expr’]) == 1)

AND

替换:

($analyzed_sql_results[‘select_expr’][0] == ‘*’)))

:

($analyzed_sql_results[‘select_expr’][0] == ‘*’))

保存,退出并运行

sudo service apache2 restart

其他回答

根据@jbator的回答,你可以编辑/usr/share/phpmyadmin/libraries/plugin_interface.lib.php并替换这一行:

if ($options != null && count($options) > 0) {

用这些句子:

if ($options != null &&
   ((is_array($options) || $options instanceof Countable) && count($options) > 0) ||
   (method_exists($options, 'getProperties') && $options->getProperties() != null && (is_array($options->getProperties()) || $options->getProperties() instanceof Countable) && count($options->getProperties()) > 0)) {

这样,导出的文件就不会是空的了。

优麒麟 18.04 LTS

这些步骤对我很有效。非常非常感谢William Desportes为他们的Ubuntu PPA提供自动更新。

第一步(摘自William Desportes的文章) $ sudo add-apt-repository ppa:phpmyadmin/ppa

步骤2 $ sudo apt-get——with-new-pkgs升级

步骤3 重启mysql

如果你在重新启动mysql时遇到问题,你也可以按照下面的顺序重新启动 $ sudo service mysql 启动mysql服务

适用于UBUNTU 16.04.3 打开

usr / share /图书馆/ sql.lib.php

修改

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

To

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

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;

在ubuntu-18.04上执行以下步骤:

步骤1)定位sql.lib.php

它将显示如下内容:

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

步骤2)打开终端(Alt t)并写入:

sudo /usr/sbin/pma-configure

步骤3)执行gedit /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;
     }

步骤4)将上述功能替换为:


     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;
     }

步骤4)在终端上保存并关闭文件和以下命令

sudo /usr/sbin/pma-secure

步骤5)sudo service mysql reload

步骤6)sudo service apache2重载

这对我有用。 古德勒克