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

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?


当前回答

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

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

Sudo add-apt-repository ppa:phpmyadmin/ppa

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

Ubuntu 20有phpMyAdmin 4.9或更高版本

我们的跟踪器上的Debian问题

我们跟踪器上的可数问题

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

其他回答

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

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

按ctrl+w搜索(count($analyzed_sql_results['select_expr'] == 1)

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

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

重新启动服务器

 sudo service apache2 restart

此外,如果你仍然面临同样的问题,那么就做下面的事情。

打开/usr/share/phpmyadmin/libraries/plugin_interface.lib.php文件

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

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

Ctrl+w : if ($options != null && count($options) > 0) {

替换为以下代码

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

现在保存并重新启动服务器

sudo /etc/init.d/apache2 restart

以提升的权限打开/usr/share/phpmyadmin/sql.lib.php文件,并在函数PMA_isRememberSortingOrder()中编辑以下内容:

~第613行修复初始错误: 替换|| count($analyzed_sql_results['select_expr'] == 1) || (count($analyzed_sql_results['select_expr']) == 1) ~第614行来修复接下来可能出现的500错误: 替换& & ($ analyzed_sql_results [' select_expr '] [0 ] == '*'))) & & (analyzed_sql_results美元[' select_expr '] [0 ] == '*'))

重启Apache服务器:sudo service apache2 Restart。

在基于Ubuntu 18.04的Linux Mint 19.1上测试,使用PhpMyAdmin 4.6.6和PHP 7.2。

phpmyadmin 4.7.4应该有“修复了与PHP 7.2的几个兼容性问题”

您可能有一个较旧版本的phpmyadmin。

https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/

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

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

Sudo add-apt-repository ppa:phpmyadmin/ppa

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

Ubuntu 20有phpMyAdmin 4.9或更高版本

我们的跟踪器上的Debian问题

我们跟踪器上的可数问题

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

我发现这个PHP 7.2 count() -语法错误在sql.lib.php

这完美地工作在我的配置:

Debian 9, 
PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar  6 2018 12:00:19) ( NTS )

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

更改行:移动==前面的括号

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

in

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