phpmyadmin-count():参数必须是实现可计数的数组或对象
我已将备份上载到一个表中,打开该表,我看到以下内容:phpmyadmin-count():参数必须是实现可计数的数组或对象,phpmyadmin,countable,Phpmyadmin,Countable,我已将备份上载到一个表中,打开该表,我看到以下内容: 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
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错误?等待更新?回到PHP7.1?phpmyadmin 4.7.4应该“修复了PHP7.2的几个兼容性问题” 你可能有一个旧版本的phpmyadmin
在Debian上测试,应该可以在Ubuntu上运行: 1.)首先下载最新的phpMyadmin文件 2.)删除(备份)位于
/usr/share/phpmyadmin
目录中的所有早期版本文件
3.)将最新phpmyadmin的所有文件解压缩到/usr/share/phpmyadmin/
目录
4.)修改文件库/vendor_config.php
并更改行:
define('CONFIG_DIR', '');
到
及
到
5.)重新启动apache服务器并完成。我发现了这个问题
这在我的配置上非常有效:
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
更改行:将括号移到=
||((计数($analysisted\u sql\u results['select\u expr'])==1)
&&($analysisted_sql_results['select_expr'][0]=='*'))
在
使用以下命令编辑文件
/usr/share/phpmyadmin/libraries/sql.lib.php
:
sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
在线613上,由于$analysisted\u sql\u results['select\u expr']
之后没有右括号,因此count函数的计算结果始终为true。进行以下替换可以解决此问题,然后您需要删除第614行的最后一个右括号,因为它现在是一个额外的括号
替换:
((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr'] == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')))
(count($analyzed_sql_results[‘select_expr’] == 1)
($analyzed_sql_results[‘select_expr’][0] == ‘*’)))
与:
重新启动apache服务器:
sudo service apache2 restart
尝试在文件中替换此函数: /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;
}
编辑文件“/usr/share/phpmyadmin/libraries/sql.lib.php”替换: (备份) 与:
"|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')
&& (count($analyzed_sql_results['select_tables']) == 1));"
适用于UBUNTU 16.04.3
刚刚打开
usr/share/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;
}
修改
||(计数($analysisted_sql_results['select_expr']==1)
到
||((计数($analysisted_sql_results['select_expr'])==1)
最简单的方法:
只需在终端的命令行下方运行此命令,然后返回PhpMyAdmin。现在它工作正常:)
手动方法: 打开sql.lib.php文件
nano /usr/share/phpmyadmin/libraries/sql.lib.php
nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
查找count($analysisted\u sql\u results['select\u expr'])
文件中的代码。您可以在第~613行中找到此代码。您可以在下面错误的代码中看到此代码
|| (count($analyzed_sql_results['select_expr'] == 1)
用下面的代码替换错误的代码
|| ((count($analyzed_sql_results['select_expr']) == 1)
保存文件并转到PhpMyAdmin
现在它工作正常:)
编辑文件
/usr/share/phpmyadmin/libraries/sql.lib.php
查看您的错误上的错误
./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(
转到此行并删除函数调用
它适合我。编辑文件:
'/usr/share/phpmyadmin/libraries/sql.lib.php'
替换:(计数($analysisted\u sql\u results['select\u expr']==1)
与:(计数($analysisted\u sql\u results['select\u expr'])==1
这对我来说很有效在ubuntu-18.04上继续以下步骤: 步骤1)查找
sql.lib.php
它将显示如下内容:
/usr/share/phpmyadmin/libraries/sql.lib.php
步骤2)打开终端(Alt t)并写入:
sudo /usr/sbin/pma-configure
步骤3)sudo 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;
}
步骤5)sudo服务mysql重新加载
步骤6)sudo服务apache2重新加载
它对我有用。。
Goodluck如果有人在DB导出页面中出现类似错误(我在Ubuntu 18.04中遇到了这个问题),那么用代码替换文件/usr/share/phpmyadmin/libraries/plugin_interface.lib.php
中的第551行
if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {
我在使用windows时遇到了这个问题,上面的回答为我解决了这个问题,但是当我切换到linux(Ubuntu18.04 LTS)时,我也遇到了同样的问题,无法找到解决方法,因为我没有看到文件“/usr/share/phpmyadmin/libraries/sql.lib.php”
这个sql.lib.php文件不在我的/opt/lampp目录的共享文件夹或phpmyadmin/libraries文件夹中,因为我在ubuntu上使用的是xampp。
基于对xampp的更新(因为我现在使用的是最新的安装)
答案仍然需要替换:(count($analysisted\u sql\u results['select\u expr']==1)
使用:(计数($analysisted\u sql\u results['select\u expr'])==1
但是要查找的文件是Sql.php
,位于/opt/lampp/phpmyadmin/libraries/classes/Sql.php
未来的更新或者如果你仍然找不到它:使用grep-r'count($analysisted\u sql\u results'/opt/lampp/phpmyadmin
在你的目录中搜索匹配的文档并进行相应的编辑升级到phpmyadmin 4.8.3。这就解决了PHP7.2的兼容性问题以下内容绝对解决了我同样的问题(进口/出口等):
所以…在ubuntu 18.04、mysql、php7.2下:
终端:
sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
找到以下行(ctrl+f):
if ($options != null && count($options) > 0) {
我的电话是在线的
并更改以下内容:
if ($options != null && count((array)$options) > 0) {
ctrl+s以保存更改
在终端中:ctrl+c表示返回提示
和:sudo systemctl重启apache2
“我认为在新的php版本中。它不能将count()或sizeof()与un数组类型一起使用。将参数强制到数组是解决此错误的简单方法,…”
感谢原作者解决问题!我试着
sudo /usr/sbin/pma-secure
if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {
sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
if ($options != null && count($options) > 0) {
if ($options != null && count((array)$options) > 0) {
Works on UBUNTU 18.04
Edit file: '/usr/share/phpmyadmin/libraries/sql.lib.php'
Replace: (count($analyzed_sql_results['select_expr'] == 1)
With: ((count($analyzed_sql_results['select_expr']) == 1)
Restart the server
sudo service apache2 restart
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.
/*
* 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! */
|| count($analyzed_sql_results['select_expr']) == 1
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Find: count($analyzed_sql_results['select_expr'] == 1)
Replace With: (count($analyzed_sql_results['select_expr']) == 1)
sudo service apache2 restart
sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Ctrl+w : if ($options != null && count($options) > 0) {
if ($options != null && count((array)$options) > 0) {
sudo /etc/init.d/apache2 restart
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
|| (count($analyzed_sql_results['select_expr'] == 1)
|| ((count($analyzed_sql_results['select_expr']) == 1)
sudo update-alternatives --config 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;
}
|| (count($analyzed_sql_results['select_expr'] == 1)
|| (count($analyzed_sql_results['select_expr']) == 1
nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
|| (count($analyzed_sql_results['select_expr'] == 1)
|| ((count($analyzed_sql_results['select_expr']) == 1)
sudo service apache2 restart
sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update
sudo apt-get upgrade
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
(count($analyzed_sql_results[‘select_expr’] == 1)
(count($analyzed_sql_results[‘select_expr’]) == 1)
($analyzed_sql_results[‘select_expr’][0] == ‘*’)))
($analyzed_sql_results[‘select_expr’][0] == ‘*’))
sudo service apache2 restart