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

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?


当前回答

这些方法对我来说都没用 您需要将phpmyadmin更新到最新版本,请遵循此处的说明

https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited

其他回答

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

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

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

这在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”质量的东西来说,速度的提高是纯粹的魔法。

根据@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)) {

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

is_可数函数(PHP 7 >= 7.3.0)

is_countable -验证变量的内容是可数值。

使用此函数的方法如下:

Is_countable ($var)

它将返回布尔值。欲了解更多详情,请访问http://php.net/manual/en/function.is-countable.php

在Debian上测试,应该在Ubuntu上工作:

1)。首先下载最新的phpMyadmin文件。

2)。删除(备份)位于/usr/share/phpmyadmin目录下的所有旧版本文件。

3)。解压所有phpmyadmin最新版本的文件到/usr/share/phpmyadmin/目录下。

4)。修改文件库/vendor_config.php并更改行:

define('CONFIG_DIR', '');

to

define('CONFIG_DIR', '/etc/phpmyadmin/');

and

define('TEMP_DIR', './tmp/');

to

define('TEMP_DIR', '/tmp/');

5.)重启apache服务器,完成。