参数必须是在phpmyadmin中实现Countable的数组或对象

时间:2018-06-29 21:10:06

标签: sql wordpress

当我尝试在phpmyadmin中查看wp_posts表时,我看到了此错误消息,但不知道它是什么意思,并且从未见过。

有人可以帮助我尝试以某种方式摆脱这种情况吗?

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 'afterhours',
string 'wp_posts',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/original/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `wp_posts`',
NULL,
NULL,
)
./sql.php#221: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'afterhours',
string 'wp_posts',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/original/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `wp_posts`',
NULL,
NULL,
)

3 个答案:

答案 0 :(得分:13)

这似乎是phpmyadmin - count(): Parameter must be an array or an object that implements Countable

的副本

根据链接文章上的最高答案,看来./libraries/sql.lib.php中可能存在错误,导致代码尝试对数组以外的对象进行count()函数(或实现“可计数”的对象)。要修复它(根据链接的响应):

编辑文件'/usr/share/phpmyadmin/libraries/sql.lib.php'并替换

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

使用:

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

之所以有效,是因为:

  • 无法在非数组上执行计数(因此会出现错误,“参数必须是数组或实现Countable的对象”)
  • count()中的
  • “ == 1”是等效测试,不是数组
  • 从count()中删除“ == 1”会留下一个count( array )函数,该函数可以正常工作。

答案 1 :(得分:2)

我通过使用is_array()函数验证它是否确实是一个数组来解决了这个问题:

if (is_array($yourArray)) {
    //Your count()
}

答案 2 :(得分:1)

考虑更新phpmyadmin并修复大量错误。现在是4.8.2 https://www.phpmyadmin.net/news/