phpmyadmin - count(): Parameter must be an array or an object that implements Countable
PhpPhpmyadminCountablePhp Problem Overview
I've uploaded the backup to a table, opening the table I see this:
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)
Inside phpMyAdmin...
PHP is 7.2, the server is Ubuntu 16.04, installed yesterday.
Looking for I saw that some have this error in their code, but I did not find anyone who received it in phpMyAdmin...
What should I do? Is that my error? A phpmyadmin error? wait update ? I go back to PHP 7.1?
Php Solutions
Solution 1 - Php
Edit file /usr/share/phpmyadmin/libraries/sql.lib.php
using this command:
sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
On line 613 the count function always evaluates to true since there is no closing parenthesis after $analyzed_sql_results['select_expr']
. Making the below replacements resolves this, then you will need to delete the last closing parenthesis on line 614, as it's now an extra parenthesis.
Replace:
((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr'] == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')))
With:
((empty($analyzed_sql_results['select_expr']))
|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*'))
Restart the server apache:
sudo service apache2 restart
Solution 2 - Php
The Easiest Method:
Just run this below command line in terminal and come back to PhpMyAdmin.
sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php
Manual Method:
Open sql.lib.php file
nano /usr/share/phpmyadmin/libraries/sql.lib.php
Find for count($analyzed_sql_results['select_expr']
code on file. You can get this at line ~613. You can see this below wrong code
|| (count($analyzed_sql_results['select_expr'] == 1)
Just replace that wrong code with this below one
|| ((count($analyzed_sql_results['select_expr']) == 1)
Save the file and come to PhpMyAdmin.
Solution 3 - Php
I found this PHP 7.2 count() - SYNTAX error in sql.lib.php
That perfectly works on my config:
Debian 9,
PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar 6 2018 12:00:19) ( NTS )
Open /usr/share/phpmyadmin/libraries/sql.lib.php
Change line: Move parenthesis before ==
>|| ((count($analyzed_sql_results['select_expr'] ) == 1) && ($analyzed_sql_results['select_expr'][0] == '*')))
in
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;
}
Solution 4 - Php
tested on Debian, should works on Ubuntu:
1.) First download latest phpMyadmin file.
2.) Delete (make a backup) all previous version file located in /usr/share/phpmyadmin
directory.
3.) Uncompress to /usr/share/phpmyadmin/
directory all files of latest phpmyadmin.
4.) Modify file libraries/vendor_config.php
and change line:
define('CONFIG_DIR', '');
to
define('CONFIG_DIR', '/etc/phpmyadmin/');
and
define('TEMP_DIR', './tmp/');
to
define('TEMP_DIR', '/tmp/');
5.) restart apache server and done.
Solution 5 - Php
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
this worked for me
Solution 6 - Php
If someone have similar error in DB export page (I had this issue in Ubuntu 18.04), then replace line 551 in file /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
with code
if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {
Solution 7 - Php
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
Solution 8 - Php
phpmyadmin 4.7.4 is supposed to have "Fixed several compatibility issues with PHP 7.2"
Chances are you have an older version of phpmyadmin.
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/
Solution 9 - Php
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;
Solution 10 - Php
Proceed following steps at ubuntu-18.04:
Step 1) locate sql.lib.php
It will show something like:
/usr/share/phpmyadmin/libraries/sql.lib.php
Step 2) Open terminal (Alt t) and write:
sudo /usr/sbin/pma-configure
Step 3)sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
and search below function:
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;
}
Step 4) Replace above function with:
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;
}
Step 4) Save & close file and below command on terminal
sudo /usr/sbin/pma-secure
Step 5) sudo service mysql reload
Step 6) sudo service apache2 reload
It works for me.. Goodluck
Solution 11 - Php
> open this file: '/usr/share/phpmyadmin/libraries/sql.lib.php'
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
> press ctrl+w to search (count($analyzed_sql_results['select_expr'] == > 1)
Find: count($analyzed_sql_results['select_expr'] == 1)
Replace With: (count($analyzed_sql_results['select_expr']) == 1)
> Restart the server
sudo service apache2 restart
moreover, If you still facing same issue then do following.
> open this file /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
> Find : if ($options != null && count($options) > 0) {
Ctrl+w : if ($options != null && count($options) > 0) {
replace with following code
if ($options != null && count((array)$options) > 0) {
now save and restart the server
sudo /etc/init.d/apache2 restart
Solution 12 - Php
Try replace this function in file: /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;
}
Solution 13 - Php
I think the best option is to update Phpmyadmin to a version which has this already fixed.
Until it is published as a deb, you could do it like in @crimson-501 answer which I will copy below:
- Your first step is to install PMA (phpMyAdmin) from the official Ubuntu repo:
apt-get install phpmyadmin
. - Next, cd into usr/share directory:
cd /usr/share
. - Third, remove the phpmyadmin directory:
rm -rf phpmyadmin
. - Now we need to download the latest PMA version onto our system (Note that you need wget:
apt-get install wget
):wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip"
Let me explain the arguments of this command, -P defines the path and "the link.zip" is currently (7/17/18) the latest version of PMA. You can find those links HERE. - For this next step you need unzip (
apt-get install unzip
):unzip phpMyAdmin-4.9.4-english.zip
. We just unzipped PMA, now we will move it to it's final home. - Lets use the
cp
(copy) command to move our files! Note that we have to add the-r
argument since this is a folder.cp -r phpMyAdmin-4.9.4-english phpmyadmin
. - Now it's time to clean up:
rm -rf phpMyAdmin-4.9.4-english
.
Keep Reading!
You might now notice two errors after you log into PMA.
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.
However, these issues are relatively easy to fix. For the first issue all you have to do is grab your editor of choice and edit /usr/share/phpmyadmin/config.inc.php
but there's a problem, we removed it! That's ok, all you have to do is: cd /usr/share/phpmyadmin
& cp config.sample.inc.php config.inc.php
.
- We will now add our Blowfish Secret!
nano config.inc.php
and copy the dynamically generated secret from near the bottom of this page: https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator.
Example phpMyAdmin Blowfish Secret Variable Entry:
/*
* 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! */
Now save and close the file.
- Now we will create a tmp directory for PMA:
mkdir tmp
&chown -R www-data:www-data /usr/share/phpmyadmin/tmp
. The last command allows the Apache web server to own the tmp directory and edit it's contents.
Solution 14 - Php
Ubuntu 18.10 (December, 2018)
Line 613, 614, 615, replace with:
|| count($analyzed_sql_results['select_expr']) == 1
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
Solution 15 - Php
Work for me.. Ubuntu 18.04
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Find for count($analyzed_sql_results['select_expr']
code on file. You can get this at line ~613.
|| (count($analyzed_sql_results['select_expr'] == 1)
Just replace with code :
|| ((count($analyzed_sql_results['select_expr']) == 1)
Save the file and reload PhpMyAdmin.
Done!!!
Solution 16 - Php
For my version of phpmyadmin (4.6.6deb5), I found line 613, and realized the count() parentheses were not closed properly. To fix this temporarily until the next release, just change:
|| (count($analyzed_sql_results['select_expr'] == 1)
to:
|| (count($analyzed_sql_results['select_expr']) == 1
Solution 17 - Php
This worked for me;
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Line No : 614
Replace two codes :
Replace:
(count($analyzed_sql_results[‘select_expr’] == 1)
With:
(count($analyzed_sql_results[‘select_expr’]) == 1)
AND
Replace:
($analyzed_sql_results[‘select_expr’][0] == ‘*’)))
With:
($analyzed_sql_results[‘select_expr’][0] == ‘*’))
save, exit and run
sudo service apache2 restart
Solution 18 - Php
This is fixed in later versions of PHPMyAdmin. The Ubuntu Software Repositories for Ubuntu 18.04.2 holds version 4.6.6.5, while they're currently at 4.9.0.1. Updating your PHPMyAdmin installation will fix this problem, but might prove to be riskier than just editing that one line of code. Here's how I did it on my Ubuntu Server. Steps are essentially the same (with a different path) for all operating systems.
- Download PHPMyAdmin.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
unzip phpMyAdmin-4.9.0.1-all-languages.zip
- Backup your old PHPMyAdmin installation.
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
- Drop your new PHPMyAdmin on your old PHPMyAdmin
cd phpMyAdmin-4.9.0.1-all-languages
rm -r /usr/share/phpmyadmin/doc/html
cp -R * /usr/share/phpmyadmin/
Verify that it works. If it doesn't, welll... You have a backup, so restore it and manually edit the faulty line. In my own personal experience, I discovered after doing this that version 4.6.6.5 was not only riddled with bugs, but also incredibly slow compared to the new 4.9.0.1. The speed increase was pure magic for something I though was of "WordPress" quality.
Solution 19 - Php
Works on UBUNTU 16.04.3 Just open
usr/share/libraries/sql.lib.php
modify
|| (count($analyzed_sql_results['select_expr'] == 1)
To
|| ((count($analyzed_sql_results['select_expr']) == 1)
Solution 20 - Php
This worked well for me on Ubuntu 18.04.
Open sql.lib.php file
nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
Replace this wrong code:
|| (count($analyzed_sql_results['select_expr'] == 1)
With this one:
|| ((count($analyzed_sql_results['select_expr']) == 1)
Save the file.
Restart your server with:
sudo service apache2 restart
And refresh PhpMyAdmin
Solution 21 - Php
Upgrade to phpMyAdmin 4.8.3. this solves the PHP 7.2 compatibility issues
Solution 22 - Php
Edit file '/usr/share/phpmyadmin/libraries/sql.lib.php' Replace: (make backup)
"|| (count($analyzed_sql_results['select_expr'] == 1)
&&($analyzed_sql_results['select_expr'][0] == '*')))
&& count($analyzed_sql_results['select_tables']) == 1;"
With:
"|| (count($analyzed_sql_results['select_expr']) == 1)
&& ($analyzed_sql_results['select_expr'][0] == '*')
&& (count($analyzed_sql_results['select_tables']) == 1));"
Solution 23 - Php
Hi the following solve my same problem absolutely (import/export and so on):
Fix Bug Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04
so... under ubuntu 18.04, mysql, php7.2: Terminal:
sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Find the following line(ctrl+f):
if ($options != null && count($options) > 0) {
it was on line #551 for me
and change for following:
if ($options != null && count((array)$options) > 0) {
ctrl+s for save the changes
and in terminal: ctrl+c for get back promt...
and: sudo systemctl restart apache2
"I think in new php version.It can’t use count() or sizeof() with un array type. Force parameter to array is easy way to solve this bug,..."
Thanks for the original author for the problem solving! I try to share it!
Solution 24 - Php
|| ((count($analyzed_sql_results['select_expr']) == 1
This is what I changed in line 614 and phpmyadmin works without any error.
Need one (
before count, and one )
before ==
. That's it.
Solution 25 - Php
Just correct the count()
function and closing parentheses
from line 604 till 615 in /usr/share/phpmyadmin/libraries/sql.lib.php
file:
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;
}
Solution 26 - Php
I tried all of above solution but didn't work for me.
Try this:-
Install required version of PHP(in my case 7.0) and then in terminal, type
sudo update-alternatives --config php
Output will be like this :-
Then you can switch to any version of PHP by simply entering the selection number(in my case 1).
Hope this may help other -:)
Solution 27 - Php
Open the /usr/share/phpmyadmin/sql.lib.php
file with elevated privileges, and edit the following in the function PMA_isRememberSortingOrder()
:
- ~ line 613 to fix the initial error:
- Replace
|| count($analyzed_sql_results['select_expr'] == 1)
- With
|| (count($analyzed_sql_results['select_expr']) == 1)
- Replace
- ~ line 614 to fix the 500 error that will probably follow:
- Replace
&& ($analyzed_sql_results['select_expr'][0] == '*')))
- With
&& ($analyzed_sql_results['select_expr'][0] == '*'))
- Replace
Restart your Apache server: sudo service apache2 restart
.
Tested on Linux Mint 19.1 based on Ubuntu 18.04, with PhpMyAdmin 4.6.6 and PHP 7.2.
Solution 28 - Php
Replace Function:
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;
}
Solution 29 - Php
Add the phpmyadmin ppa
sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update
sudo apt-get upgrade
Solution 30 - Php
add-apt-repository ppa:phpmyadmin/ppa
apt-get clean
apt-get update
apt-get purge phpmyadmin
apt-get install phpmyadmin
Fixed it for me, on Ubuntu 18.04.
Solution 31 - Php
Edit file /usr/share/phpmyadmin/libraries/sql.lib.php
See an error on your error
./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse(
go to this line and remove the function call.
It works for me.
Solution 32 - Php
I had this issue when using windows and the responses above solved it for me, however when i switched to linux (ubuntu 18.04 LTS) I had the same issue and couldn't figure out how to solve it because I didn't see the file '/usr/share/phpmyadmin/libraries/sql.lib.php'.
This sql.lib.php file wasn't in the share folder or the phpmyadmin/libraries folder of my /opt/lampp directory - since I was using xampp on my ubuntu. Based on the update made to the xampp (because I used the latest installation as of now) setup.
The answer is still to replace: (count($analyzed_sql_results['select_expr'] == 1)
With: (count($analyzed_sql_results['select_expr']) == 1
However the file to look for is Sql.php
found in /opt/lampp/phpmyadmin/libraries/classes/Sql.php
Future updates or if you still don't find it: use grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin
to search for matching documents in your directory and edit accordingly
Solution 33 - Php
I see that you are all editing or updating from our files
For those who want automatic updates you can use our Ubuntu PPA
sudo add-apt-repository ppa:phpmyadmin/ppa
And for Debian users you will need to wait for next version of Debian or use PPA
Ubuntu 20 has phpMyAdmin 4.9 or a later version
Countable issues on our tracker
TLDR Update to latest 4.9 or 5.0 version to solve this issue.
Solution 34 - Php
On Ubuntu 18.04 with MariaDb and Nginx, I solved it with updating file /usr/share/phpmyadmin/libraries/sql.lib.php as follows:
|| (count($analyzed_sql_results['select_expr']) == 1
The answer mentioned by @Nguyen throws a 500 error saying:
FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected ')', expecting ';' in /usr/share/phpmyadmin/libraries/sql.lib.php on line 614"
Solution 35 - Php
As the error in code in conf file may vary (@Jacky Nguyen vs @ĦΔŇĐŘΔ ŇΔҜҜΔ answers),
the general solution answer would be to
a) correct the condition logic in conf file to make sense
(x)or b) install corrected/current phpmyadmin
As for a)
-
open the file with error code
For the terminal people:sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
For the regular folks:sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
-
find the condition - basically search for
$analyzed_sql_results['select_expr']
-
now the logic should be to check whether this sub array is empty, or, whether it has just 1 element with a value "
*
-
so basically the block
between&& $analyzed_sql_results['select_from']
and&& count($analyzed_sql_results['select_tables']) == 1
should look something like this
> && ( > empty($analyzed_sql_results['select_expr']) //the sub array is empty, > || //or, > ( > (count($analyzed_sql_results['select_expr']) == 1) //it has just 1 element > && //and at the same time > ($analyzed_sql_results['select_expr'][0] == '') //the 1 element value is "" > ) > )
This is a good example of why to indent and beautify your code, if it would be indeted correctly, I believe this would never happen, or at least, would be more easily found.
Solution 36 - Php
is_countable function introduced in (PHP 7 >= 7.3.0)
is_countable — Verify that the contents of a variable is a countable value.
use this function following way ::
is_countable ( $var )
It will return boolean value. For more detail please visit on http://php.net/manual/en/function.is-countable.php
Solution 37 - Php
Based on @jbator's answer, you can edit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
and replace this line:
if ($options != null && count($options) > 0) {
with these lines:
if ($options != null &&
((is_array($options) || $options instanceof Countable) && count($options) > 0) ||
(method_exists($options, 'getProperties') && $options->getProperties() != null && (is_array($options->getProperties()) || $options->getProperties() instanceof Countable) && count($options->getProperties()) > 0)) {
In this way, we won't have empty exported file.
Solution 38 - Php
Take a look: https://devanswers.co/problem-php-7-2-phpmyadmin-warning-in-librariessql-count/
Firstly, backup sql.lib.php before editing. Edit sql.lib.php in nano.
$ sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Press CTRL + W and search for (count($analyzed_sql_results['select_expr'] == 1)
Replace it with ((count($analyzed_sql_results['select_expr']) == 1)
Save file and exit. (Press CTRL + X, press Y and then press ENTER)
Solution 39 - Php
Here's an automated patching script I threw together utilizing Chandra Nakka
's answer.
FILE="/usr/share/phpmyadmin/libraries/sql.lib.php"
PATTERN="(count(\$analyzed_sql_results\['select_expr'\] == 1)"
echo "Verifying broken code in $FILE"
if grep -q "$PATTERN" "$FILE"; then
LINE_NUMBER=$(grep -n "$PATTERN" "$FILE" | cut -d : -f 1)
echo "Broken code found on line: $LINE_NUMBER"
BEFORE_CODE=$(sed -n "$LINE_NUMBER"p "$FILE")
echo -e "\nCreating backup of $FILE"
sudo cp "$FILE" "$FILE-backup-$(date +"%Y-%m-%dT%H%M%S")"
echo "Backup created at: $FILE-backup-$(date +"%Y-%m-%dT%H%M%S")"
echo -e "\nApplying fix"
sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" $FILE
AFTER_CODE=$(sed -n "$LINE_NUMBER"p "$FILE")
# Trim before and after code with xargs
echo "BEFORE: $(echo $BEFORE_CODE | xargs)"
echo " AFTER: $(echo $AFTER_CODE | xargs)"
else
echo "Broken code not found. Maybe it's already been patched 🤷"
fi
Solution 40 - Php
none of these solutions worked for me you need to update phpmyadmin to the latest, follow instructions here
https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited