Я загрузил резервную копию в таблицу, открывая таблицу, я вижу это:

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 - 7.2, сервер - Ubuntu 16.04, установлен вчера.

Ищу Я видел, что у некоторых есть эта ошибка в коде, но я не нашел никого, кто получил бы ее в phpMyAdmin ...

Что делать? Это моя ошибка? Ошибка phpmyadmin? ждать обновления? Я возвращаюсь к PHP 7.1?

alebal

Ответов: 40

Ответы (40)

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

Попробуйте заменить эту функцию в файле: /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;
}

Если у кого-то похожая ошибка на странице экспорта БД (у меня была эта проблема в Ubuntu 18.04), замените строку 551 в файле / usr / share / phpmyadmin / libraries / plugin_interface.lib.php кодом

if ($options != null && (is_array($options) || $options instanceof Countable) && count($options) > 0) {

Функция замены:

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;
}

Ubuntu 18.10 (декабрь 2018 г.)

Строку 613, 614, 615 заменить на:

        || count($analyzed_sql_results['select_expr']) == 1
            && ($analyzed_sql_results['select_expr'][0] == '*'))
    && count($analyzed_sql_results['select_tables']) == 1;

В Ubuntu 18.04 с MariaDb и Nginx я решил это обновлением файла /usr/share/phpmyadmin/libraries/sql.lib.php следующим образом:

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

Ответ, упомянутый @Nguyen, вызывает ошибку 500:

FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected ')', expecting ';' in /usr/share/phpmyadmin/libraries/sql.lib.php on line 614"

Редактировать файл '/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;"

С:

"|| (count($analyzed_sql_results['select_expr']) == 1) 
&& ($analyzed_sql_results['select_expr'][0] == '*') 
&& (count($analyzed_sql_results['select_tables']) == 1));"

Для моей версии phpmyadmin (4.6.6deb5) я нашел строку 613 и понял, что круглые скобки count () закрыты неправильно. Чтобы временно исправить это до следующего выпуска, просто измените:

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

на:

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

Просто исправьте функцию count () и закрывающие круглые скобки от строки 604 до 615 в / usr / share / phpmyadmin / libraries / sql.lib.php файл:

функция PMA_isRememberSortingOrder ($ analysis_sql_results)
{
    return $ GLOBALS ['cfg'] ['RememberSorting']
        &&! ($ проанализировано_sql_results ['is_count']
            || $ analysis_sql_results ['is_export']
            || $ проанализированный_sql_results ['is_func']
            || $ analysis_sql_results ['is_analyse'])
        && $ analysis_sql_results ['select_from']
        && ((пусто ($ проанализировано_sql_results ['select_expr']))
            || (количество ($ проанализировано_sql_results ['select_expr']) == 1)
                && ($ analysis_sql_results ['select_expr'] [0] == '*'))
        && count ($ analysis_sql_results ['select_tables']) == 1;
}

На основе ответа @ jbatorвы можете отредактировать / usr / share / phpmyadmin / libraries / plugin_interface.lib.php и заменить эту строку:

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

со следующими строками:

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)) {

Таким образом, у нас не будет пустого экспортированного файла.

Откройте файл / usr / share / phpmyadmin / sql.lib.php с повышенными привилегиями и отредактируйте следующее в функции PMA_isRememberSortingOrder ():

  1. ~ строка 613 для исправления начальной ошибки:
    • Заменить || count ($ analysis_sql_results ['select_expr'] == 1)
    • С || (count ($ analysis_sql_results ['select_expr']) == 1)
  2. ~ строка 614, чтобы исправить ошибку 500, которая, вероятно, последует:
    • Заменить && ($ analysis_sql_results ['select_expr'] [0] == '*')))
    • С && ($ analysis_sql_results ['select_expr'] [0] == '*'))

Перезагрузите сервер Apache: sudo service apache2 restart.

Протестировано на Linux Mint 19.1 на основе Ubuntu 18.04, с PhpMyAdmin 4.6.6 и PHP 7.2.

Отредактируйте файл / usr / share / phpmyadmin / libraries / sql.lib.php с помощью этой команды:

sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php

В строке 613 функция count всегда принимает значение true, поскольку после $ analysis_sql_results ['select_expr']закрывающих скобок нет. Выполнение приведенных ниже замен решает эту проблему, тогда вам нужно будет удалить последнюю закрывающую скобку в строке 614, так как теперь это дополнительная скобка.

Заменить:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr'] == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*')))

С:

((empty($analyzed_sql_results['select_expr']))
    || (count($analyzed_sql_results['select_expr']) == 1)
        && ($analyzed_sql_results['select_expr'][0] == '*'))

Перезагрузите сервер apache:

sudo service apache2 restart

Посмотрите: https://devanswers.co/problem-php-7-2-phpmyadmin-warning-in-librariessql-count/

Во-первых, сделайте резервную копию sql.lib.php перед редактированием. Отредактируйте sql.lib.php в nano.

$ sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

Нажмите CTRL + W и найдите (count ($ analysis_sql_results ['select_expr'] == 1)

Замените его на ((count ($ analysis_sql_results ['select_expr']) == 1)

Сохранить файл и выйти. (Нажмите CTRL + X, нажмите Y, а затем нажмите ENTER)

Ubuntu 18.04 LTS

Это шаги, которые у меня сработали. Большое, большое спасибо Уильяму Деспорту за предоставление автоматических обновлений для их Ubuntu PPA.

Шаг 1 (из сообщения Уильяма Деспорта)
$ sudo add-apt-репозиторий ppa: phpmyadmin / ppa

Шаг 2
$ sudo apt-get --with-new-pkgs upgrade

Шаг 3
$ перезапуск службы sudo mysql

Если у вас возникли проблемы с перезапуском mysql, вы также можете перезапустить его со следующей последовательностью
$ служба sudo mysql stop;
$ запуск службы sudo mysql;

Это исправлено в более поздних версиях PHPMyAdmin. Репозитории программного обеспечения Ubuntu для Ubuntu 18.04.2 содержат версию 4.6.6.5, в то время как в настоящее время они находятся на уровне 4.9.0.1. Обновление установки PHPMyAdmin решит эту проблему, но может оказаться более рискованным, чем просто редактирование этой одной строки кода. Вот как я это сделал на своем сервере Ubuntu. Шаги по существу одинаковы (с другим путем) для всех операционных систем.

  1. Скачать PHPMyAdmin.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
разархивировать phpMyAdmin-4.9.0.1-all-languages.zip
  1. Сделайте резервную копию вашей старой установки PHPMyAdmin.
cp -r / usr / share / phpmyadmin ~ / phpmyadmin-backup
  1. Перетащите свой новый PHPMyAdmin на старый PHPMyAdmin
cd phpMyAdmin-4.9.0.1-все-языки
rm -r / usr / share / phpmyadmin / doc / html
cp -R * / usr / share / phpmyadmin /

Убедитесь, что он работает. Если нет, хорошо ... У вас есть резервная копия, поэтому восстановите ее и вручную отредактируйте неисправную строку. На собственном личном опыте я обнаружил, что после этого я обнаружил, что версия 4.6.6.5 не только изобилует ошибками, но и невероятно медленная по сравнению с новой версией 4.9.0.1. Увеличение скорости было чистой магией для чего-то, что, как мне казалось, было "WordPress".

протестировано на Debian, должно работать на Ubuntu:

1.) Сначала загрузите последний файл phpMyadmin.

2.) Удалите (сделайте резервную копию) все файлы предыдущей версии, расположенные в каталоге / usr / share / phpmyadmin.

3.) Распакуйте в каталог / usr / share / phpmyadmin / все файлы последней версии phpmyadmin.

4.) Измените файл библиотеки / vendor_config.php и измените строку:

define('CONFIG_DIR', '');
От

до

define('CONFIG_DIR', '/etc/phpmyadmin/');

и

define('TEMP_DIR', './tmp/');
От

до

define('TEMP_DIR', '/tmp/');

5.) Перезапустите сервер apache и готово.

phpmyadmin 4.7.4 должен иметь «Исправлено несколько проблем совместимости с PHP 7.2»

Скорее всего, у вас более старая версия phpmyadmin.

https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/

Я нашел это PHP 7.2 count () - Ошибка SYNTAX в sql.lib.php

Это отлично работает с моей конфигурацией:

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

Изменить строку: переместить скобку перед ==

||((count ($ analysis_sql_results ['select_expr'] ) == 1) && ($ analysis_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;
 }

Редактировать файл / 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'

Заменить: (count ($ analysis_sql_results ['select_expr'] == 1)

С: (count ($ analysis_sql_results ['select_expr']) == 1

это сработало для меня

Работает на UBUNTU 16.04.3 Просто откройте

usr / share / библиотеки / sql.lib.php

изменить

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

Кому

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

Самый простой способ:

Просто запустите эту командную строку ниже в терминале и вернитесь в PhpMyAdmin.

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

Ручной метод:

Открыть sql.lib.php файл

nano /usr/share/phpmyadmin/libraries/sql.lib.php

Найти для count ($ analysis_sql_results ['select_expr'] код в файле. Вы можете получить это в строке ~613. Вы можете увидеть неправильный код ниже

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

Просто замените тот неправильный код на приведенный ниже

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

Сохраните файл и зайдите в PhpMyAdmin.

Обновитесь до phpMyAdmin 4.8.3. это решает проблемы совместимости с PHP 7.2

У меня была эта проблема при использовании Windows, и ответы выше решили ее для меня, однако, когда я переключился на Linux (ubuntu 18.04 LTS), у меня была такая же проблема, и я не мог понять, как ее решить, потому что я не см. файл '/usr/share/phpmyadmin/libraries/sql.lib.php'.

Этого файла sql.lib.php не было в общей папке или в папке phpmyadmin / libraries в моем каталоге / opt / lampp - поскольку я использовал xampp на моем ubuntu. На основе обновления, сделанного для xampp (потому что я использовал последнюю установку на данный момент) setup.

Ответ еще предстоит заменить: (count ($ analysis_sql_results ['select_expr'] == 1)

С: (count ($ analysis_sql_results ['select_expr']) == 1

Однако файл для поиска: Sql.php находится в / opt / lampp / phpmyadmin / libraries / classes / Sql.php

Будущие обновления или, если вы все еще не нашли его: используйте grep -r 'count ($ analysis_sql_results' / opt / lampp / phpmyadmin для поиска совпадающих документов в вашем каталоге и внесите соответствующие изменения

Выполните следующие шаги в ubuntu-18.04:

Step 1) locate 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;
     }

Шаг 4) Замените вышеуказанную функцию на:

     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;
     }

Шаг 4) Сохранить и закрыть файл и команду ниже на терминале

sudo /usr/sbin/pma-secure

Шаг 5) sudo service mysql reload

Шаг 6) sudo service apache2 reload

У меня работает .. Гудлак

Привет, следующее решение моей проблемы полностью (импорт / экспорт и т. Д.):

Исправить ошибку Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04

итак ... в ubuntu 18.04, mysql, php7.2: Терминал:

sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

Найдите следующую строку (ctrl + f):

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

это было на линии # 551 для меня

и замените на следующее:

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

ctrl + s для сохранения изменений

и в терминале: ctrl + c для возврата сообщения ...

and: sudo systemctl restart apache2

"Я думаю, что в новой версии php. Он не может использовать count () или sizeof () с типом массива un. Параметр принудительного преобразования в массив - простой способ решить эту ошибку, ..."

Спасибо автору оригинала за решение проблемы! Пытаюсь поделиться!

is_countable функция, представленная в (PHP 7> = 7.3.0)

is_countable - Убедитесь, что содержимое переменной является счетным значением.

используйте эту функцию следующим образом:

is_countable ($ var)

Он вернет логическое значение. Для получения более подробной информации посетите http://php.net/manual/en/function.is-countable.php

откройте этот файл: '/usr/share/phpmyadmin/libraries/sql.lib.php'

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

нажмите ctrl + w для поиска (count ($ analysis_sql_results ['select_expr'] == 1)

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

Replace With:  (count($analyzed_sql_results['select_expr']) == 1)

Перезагрузите сервер

 sudo service apache2 restart

кроме того, если вы все еще сталкиваетесь с той же проблемой, сделайте следующее.

откройте этот файл /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

Найти: if ($ options! = Null && count ($ options)> 0) {

Ctrl+w : if ($options != null && count($options) > 0) {

заменить на следующий код

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

теперь сохраняем и перезапускаем сервер

sudo /etc/init.d/apache2 restart

Поскольку ошибка в коде в файле conf может отличаться (ответы @Jacky Nguyen vs @ ĦΔŇĐŘΔ ŇΔҜҜΔ),
общее решение ответ будет:
а) исправьте логику условий в файле conf, чтобы иметь смысл
(x) или б) установить исправленный / текущий phpmyadmin

То же, что а)

  1. 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

  2. find the condition - basically search for $analyzed_sql_results['select_expr']

  3. now the logic should be to check whether this sub array is empty, or, whether it has just 1 element with a value "*

  4. so basically the block
    between && $analyzed_sql_results['select_from']
    and && count($analyzed_sql_results['select_tables']) == 1
    should look something like this

&& (
    empty ($ analysis_sql_results ['select_expr']) // подмассив пуст,
    || //или,
    (
        (count ($ analysis_sql_results ['select_expr']) == 1) // в нем всего 1 элемент
        && // и одновременно
        ($ analysis_sql_results ['select_expr'] [0] == '*') // значение 1 элемента равно "*"
    )
)

Это хороший пример того, почему нужно делать отступы и украшать свой код, если бы он был правильно расставлен, я считаю, что этого никогда бы не произошло, или, по крайней мере, его было бы легче найти.

Я думаю, что лучший вариант - обновить Phpmyadmin до версии, в которой это уже исправлено.

Пока он не будет опубликован как deb, вы можете сделать это, как в ответе @ crimson-501, который я скопирую ниже:

  • Ваш первый шаг - установить PMA (phpMyAdmin) из официального репозитория Ubuntu: apt-get install phpmyadmin.
  • Затем cd в каталог usr / share: cd /usr/share.
  • В-третьих, удалите каталог phpmyadmin: rm -rf phpmyadmin.
  • Теперь нам нужно загрузить последнюю версию PMA в нашу систему (обратите внимание, что вам понадобится wget: apt-get install wget): wget -P / usr / share / "https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-english.zip" Позвольте мне объяснить аргументы этой команды: -P определяет путь, а «link.zip» в настоящее время (17.07.18) является последней версией PMA. Вы можете найти эти ссылки ЗДЕСЬ.
  • Для этого следующего шага вам нужно распаковать (apt-get install unzip): распаковать phpMyAdmin-4.9.4-english.zip. Мы только что разархивировали PMA, теперь переместим его в последний дом.
  • Давайте использовать команду cp (копировать), чтобы переместить наши файлы! Обратите внимание, что мы должны добавить аргумент -r, поскольку это папка.cp -r phpMyAdmin-4.9.4-английский phpmyadmin.
  • Теперь пора очистить: rm -rf phpMyAdmin-4.9.4-english.

Продолжайте читать!

Теперь вы можете заметить две ошибки после входа в 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.

Однако эти проблемы относительно легко исправить. Для решения первой проблемы все, что вам нужно сделать, это взять нужный редактор и отредактировать / usr / share / phpmyadmin / config.inc.php, но возникла проблема, мы ее удалили! Ничего страшного, все, что вам нужно сделать, это: cd / usr / share / phpmyadmin & cp config.sample.inc.php config.inc.php.

Пример записи секретной переменной для phpMyAdmin Blowfish:

/*
 * 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! */

Теперь сохраните и закройте файл.

  • Теперь мы создадим каталог tmp для PMA: mkdir tmp & chown -R www-data:www-data / usr / share / phpmyadmin / tmp. Последняя команда позволяет веб-серверу Apache владеть каталогом tmp и редактировать его содержимое.

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

Это то, что я изменил в строке 614, и phpmyadmin работает без ошибок. Нужен один ( перед подсчетом и один ) перед ==. Вот и все.

ни одно из этих решений не помогло мне вам необходимо обновить phpmyadmin до последней версии, следуйте инструкциям здесь

https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited

Работай у меня .. Ubuntu 18.04

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

Найти для count ($ analysis_sql_results ['select_expr'] код в файле. Вы можете получить его в строке ~ 613.

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

Просто замените на код:

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

Сохраните файл и перезагрузите PhpMyAdmin.

Готово !!!

Я попробовал все вышеперечисленные решения, но у меня ничего не вышло.

Попробуйте это: -

Установите необходимую версию PHP (в моем случае 7.0), а затем в терминале введите

sudo update-alternatives --config php

Результат будет таким: -

enter image description here

Затем вы можете переключиться на любую версию PHP, просто введя номер выбора (в моем случае 1).

Надеюсь, это поможет другим - :)

add-apt-repository ppa:phpmyadmin/ppa
apt-get clean
apt-get update
apt-get purge phpmyadmin
apt-get install phpmyadmin

Исправлено для меня, на Ubuntu 18.04.

Добавьте ppa phpmyadmin

sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update
sudo apt-get upgrade

У меня это сработало на Ubuntu 18.04.

Открыть sql.lib.php файл

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

и обновите PhpMyAdmin

Я вижу, что вы все редактируете или обновляете наши файлы

Для тех, кому нужны автоматические обновления, вы можете использовать наш Ubuntu PPA

sudo add-apt-repository ppa: phpmyadmin / ppa

А для пользователей Debian вам нужно будет дождаться следующей версии Debian или использовать PPA

Ubuntu 20 имеет phpMyAdmin 4.9 или более позднюю версию

Debian issue on our tracker

Счетные проблемы на нашем трекере

TL; DR Обновите до последней версии 4.9 или 5.0, чтобы решить эту проблему.

Вот сценарий автоматического исправления, который я собрал, используя ответ Chandra Nakka.

FILE = "/ usr / share / phpmyadmin / libraries / sql.lib.php"
ШАБЛОН = "(count (\ $ analysis_sql_results \ ['select_expr' \] == 1)"

echo "Проверка неработающего кода в $ FILE"

если grep -q "$ PATTERN" "$ FILE"; тогда
  LINE_NUMBER = $ (grep -n "$ PATTERN" "$ FILE" | вырезать -d: -f 1)
  echo "Неверный код в строке: $ LINE_NUMBER"
  BEFORE_CODE = $ (sed -n "$ LINE_NUMBER" p "$ FILE")

  echo -e "\ nСоздание резервной копии файла $ FILE"
  sudo cp "$ FILE" "$ FILE-backup - $ (date +"% Y-% m-% dT% H% M% S ")"
  echo "Резервная копия создана в: $ FILE-backup - $ (date +"% Y-% m-% dT% H% M% S ")"

  echo -e "\ nПрименение исправления"
  sudo sed -i "s / | \ s * \ ((count (\ $ analysis_sql_results \ ['select_expr' \] \) / | (\ 1) / g" $ FILE
  AFTER_CODE = $ (sed -n "$ LINE_NUMBER" p "$ FILE")

  # Обрезать до и после кода с помощью xargs
  echo "ДО: $ (echo $ BEFORE_CODE | xargs)"
  echo "ПОСЛЕ: $ (echo $ AFTER_CODE | xargs)"
еще
  echo "Неработающий код не найден. Возможно, он уже был исправлен 🤷"
фи

Это сработало для меня;

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php 

Номер строки: 614

Заменить два кода:

Заменить:

(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

2022 WebDevInsider