Phpmyadmin export issue: count(): Parameter must be an array or an object that implements Countable

10,819

Solution 1

It seems we can't remove all the issues from PhpMyAdmin with PHP 7.2+. But we can remove this issue by change in one line in file libraries/plugin_interface.lib.php file at line no 532.

Below is the screenshot for the fix.

Before fix code looks like:-

enter image description here

After fix code looks like:-

enter image description here

Above is the only fix to solve error messages in export database screen.

Solution 2

Yes if you're using phpMyAdmin version 4.6.6deb4, you'll get this error.

In my /usr/share/libraries/phpmyadmin/sql.lib.php file, on line 613 specifically, there seems to be an error in the if statement. Change

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

to this

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

The first code line is attempting to count the result of a boolean expression with outputs a non-countable value ('false' or 'true').

After this change, the error went away.

Solution 3

After testing it on PHP 7.2.10 you need to change that line like this:

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

Solution 4

Ubuntu 18.04 LTS

These are the steps which worked for me. Many, many thanks to William Desportes for providing the automatic updates on their Ubuntu PPA.

Step 1 (from William Desportes post)

sudo add-apt-repository ppa:phpmyadmin/ppa

Step 2

sudo apt-get --with-new-pkgs upgrade

Step 3

sudo service mysql restart

If you have issues restarting mysql, you can also restart with the following sequence

sudo service mysql stop

sudo service mysql start

Share:
10,819
Lakhwinder Singh
Author by

Lakhwinder Singh

Having over 8+ years of strong experience in developing web applications using open source technologies/frameworks like Laravel / CakePHP etc. Strong experience in end-to-end project management including project planning, scoping, estimation, status tracking & ensuring implementation and successful project delivery as per the agreed deadlines. Laravel Certified Developer https://exam.laravelcert.com/is/lakhwinder-singh/certified-since/2019-06-06 ==== Technical Skills & Expertise ==== PHP4, PHP5, PHP7.x with strong hold in Laravel / CakePHP / AngularJS / MongoDB / Custom Framework (MVC), NodeJS Strong hold in MySQL / Mongodb Database Administration Various API's through REST / SOAP Libraries - Social Media API's, Google MAPs, Geocoding etc 3rd Party components - Solr Search, Pusher, Elastic Search etc Building Responsive Web Applications using HTML5, CSS3, Bootstrap and jQuery.

Updated on June 05, 2022

Comments

  • Lakhwinder Singh
    Lakhwinder Singh almost 2 years

    I'm getting issue with PhpMyAdmin when exporting any database. It is coming every time.

    enter image description here

    Please help me if anyone has solution to resolve all these types of issues in PhpMyAdmin

  • agDev
    agDev over 4 years
    This is the correct answer. However by me the error was on line 551, not on line 532
  • Louis Charette
    Louis Charette over 4 years
    The file path should be /usr/share/phpmyadmin/libraries/sql.lib.php instead of /usr/share/libraries/phpmyadmin/sql.lib.php
  • Louis Charette
    Louis Charette over 4 years
    Also, this apply to a different error. The OP error involves plugin_interface.lib.php. This fix would be for an error in sql.lib.php (don't have the details)
  • Md. Mohaiminul Hasan
    Md. Mohaiminul Hasan almost 4 years
    Also you have to remove one closing parenthesis at next line.. && ($analyzed_sql_results['select_expr'][0] == '*'))
  • Yunnosch
    Yunnosch almost 3 years
    @LouisCharette Please note, in case you want to claim something.
  • Yunnosch
    Yunnosch almost 3 years
    Hi user3673734. Turning a comment in to a proper answer is usually appreciated. Especially if you have reasons that the comment author won't (which I confirm after several months...). However, it would be nice to still notify the comment author. And also please be more verbose and explicit about what you are doing. This specific post risked being mistaken as a "Thanks." non-answer. Have fun.
  • Luca Kiebel
    Luca Kiebel about 2 years
    While this code snippet may solve the problem, it doesn't explain why or how it answers the question. Please include an explanation for your code, as that really helps to improve the quality of your post.