【问题标题】:Parameter must be an array or an object that implements Countable in phpmyadmin参数必须是在phpmyadmin中实现Countable的数组或对象
【发布时间】:2018-12-09 02:29:12
【问题描述】:

当我尝试在 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,
)

【问题讨论】:

标签: sql wordpress


【解决方案1】:

这似乎与 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

这行得通,因为:

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

【讨论】:

  • 我没有这条线。即使] == 1 也没有结果。
  • 我尝试了您的建议,但对我不起作用。
  • 仅供参考,我挖掘了 github 历史并在旧版本中发现了该行 github.com/phpmyadmin/phpmyadmin/blame/… .. 如果它不在您的版本中,您的可能已修复。令人沮丧的是,在这个以及相关的问题stackoverflow.com/questions/48001569/… 中,人们没有报告他们的 phpMyAdmin 版本。了解你的 Ubuntu 或 PHP 版本并没有多大帮助:)
【解决方案2】:

我通过使用 is_array() 函数验证它是否真的是一个数组来解决问题,如下所示:

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

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2018-11-18
    • 1970-01-01
    • 2019-05-10
    • 2020-05-28
    • 1970-01-01
    • 2019-10-04
    • 2019-01-27
    相关资源
    最近更新 更多