phpMyAdmin 报错Warning in ./libraries/sql.lib.php#613

来自:网络
时间:2019-09-17
阅读:

Ubuntu 18.04下安装好 MySQL5.7, PHP7.2及 phpMyAdmin 4.6.6并配置好用户名和密码以后,进入phpMyAdmin后,查看任一数据库下的表格时,会遇到以下报错:

Warning in ./libraries/sql.lib.php#613
 count(): Parameter must be an array or an object that implements Countable
Backtrace
./libraries/sql.lib.php#2128: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#2079: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'information_schema',
string 'CHARACTER_SETS',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `CHARACTER_SETS`',
NULL,
NULL,
)
./sql.php#221: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'information_schema',
string 'CHARACTER_SETS',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `CHARACTER_SETS`',
NULL,
NULL,
)
./index.php#53: include(./sql.php)

搜索了一下,发现了好多人都遇到了同样的问题,原因可能是phpMyAdmin4.6.6和PHP7.2不完全兼容引起的。

phpMyAdmin新版本4.8以上应该解决了这个问题,不过现在还没法通过apt升级,需要自己手动升级。

stackoverflow上有网友给出了修改/usr/share/phpmyadmin/libraries/sql.lib.php文件的解决方法:

最高票答案是修改第614行,把

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

修改成:

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

这样修改后,原来的报错没有了,不过又报错500 Internal server error,还是有问题。

另外一个答案,是修改/usr/share/phpmyadmin/libraries/sql.lib.php第613行,把

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

修改成

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

这个方法完美解决了问题。

返回顶部
顶部