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

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(

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

这对我很管用。

其他回答

优麒麟 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服务

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

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

嗨,下面绝对解决了我同样的问题(导入/导出等):

修复Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04的错误

所以…在ubuntu 18.04下,mysql, php7.2: 终端:

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

找到下面的行(ctrl+f):

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

我是在551行

并更改如下:

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

Ctrl +s保存更改

在终端:ctrl+c for get back prompt…

然后:sudo systemctl restart apache2

“我认为在新的php版本。它不能对unarray类型使用count()或sizeof()。强制参数数组是解决这个错误的简单方法,…”

感谢原作者解决问题!我试着分享它!

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

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

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

我认为最好的选择是将Phpmyadmin更新到一个已经修复了这个问题的版本。

在它作为deb发布之前,你可以像@crimson-501那样做,我将在下面复制:

Your first step is to install PMA (phpMyAdmin) from the official Ubuntu repo: apt-get install phpmyadmin. Next, cd into usr/share directory: cd /usr/share. Third, remove the phpmyadmin directory: rm -rf phpmyadmin. Now we need to download the latest PMA version onto our system (Note that you need wget: apt-get install wget): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip" Let me explain the arguments of this command, -P defines the path and "the link.zip" is currently (7/17/18) the latest version of PMA. You can find those links HERE. For this next step you need unzip (apt-get install unzip): unzip phpMyAdmin-4.9.4-english.zip. We just unzipped PMA, now we will move it to it's final home. Lets use the cp (copy) command to move our files! Note that we have to add the -r argument since this is a folder. cp -r phpMyAdmin-4.9.4-english phpmyadmin. Now it's time to clean up: rm -rf phpMyAdmin-4.9.4-english.

继续阅读!

在登录到PMA之后,您现在可能会注意到两个错误。

the configuration file now needs a secret passphrase (blowfish_secret). phpmyadmin
The $cfg['TempDir'] (./tmp/) is not accessible. phpMyAdmin is not able to cache templates and will be slow because of this.

然而,这些问题相对容易解决。对于第一个问题,你所要做的就是抓取你选择的编辑器,编辑/usr/share/phpmyadmin/config.inc.php,但有一个问题,我们删除了它!没关系,你要做的就是:cd /usr/share/phpmyadmin & cp config.sample.inc.php config.inc.php。

现在我们将添加河豚秘密!Nano config.inc.php并从该页底部附近复制动态生成的秘密:https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator。

示例phpMyAdmin Blowfish秘密变量入口:

/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = '{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V'; 
/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

现在保存并关闭文件。

现在我们将为PMA创建一个tmp目录:mkdir tmp & chown -R www-data:www-data /usr/share/phpmyadmin/tmp。最后一个命令允许Apache web服务器拥有tmp目录并编辑它的内容。