phpmyadmin – count (): le paramètre doit être un tableau ou un object qui implémente Countable

J’ai téléchargé la sauvegarde sur une table, ouvrant la table, je vois ceci:

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, ssortingng 'alternativegirls', ssortingng 'tgp_photo', NULL, NULL, NULL, NULL, NULL, NULL, ssortingng '', ssortingng './themes/pmahomme/img/', NULL, NULL, NULL, ssortingng 'SELECT * FROM `tgp_photo`', NULL, NULL, ) ./sql.php#216: PMA_executeQueryAndSendQueryResponse( array, boolean true, ssortingng 'alternativegirls', ssortingng 'tgp_photo', NULL, NULL, NULL, NULL, NULL, NULL, ssortingng '', ssortingng './themes/pmahomme/img/', NULL, NULL, NULL, ssortingng 'SELECT * FROM `tgp_photo`', NULL, NULL, ) ./index.php#53: include(./sql.php) 

À l’intérieur de phpMyAdmin …

PHP est 7.2, le serveur est Ubuntu 16.04, installé hier.

En cherchant j’ai vu que certains ont cette erreur dans leur code, mais je n’ai trouvé personne qui l’a reçu dans phpMyAdmin …

Que devrais-je faire? Est-ce mon erreur? Une erreur phpmyadmin? attendre la mise à jour? Je reviens à PHP 7.1?

Editez le fichier ‘/usr/share/phpmyadmin/libraries/sql.lib.php’ Remplacez: (count($analyzed_sql_results['select_expr'] == 1) Avec: (count($analyzed_sql_results['select_expr']) == 1

testé sur Debian, devrait fonctionner sur Ubuntu:

1.) Tout d’abord télécharger le dernier fichier phpMyadmin.

2.) Supprimez (faites une sauvegarde) tous les fichiers de la version précédente situés dans le /usr/share/phpmyadmin .

3.) Décompressez vers /usr/share/phpmyadmin/ répertoire tous les fichiers de la dernière version de phpmyadmin.

4.) Modifiez le fichier libraries/vendor_config.php et changez de ligne:

 define('CONFIG_DIR', ''); 

à

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

et

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

à

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

5.) redémarrer le serveur apache et terminé.

Ouvrez le fichier sql.lib.php

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

Rechercher pour le count($analyzed_sql_results['select_expr'] code sur le fichier. Vous pouvez obtenir ceci à la ligne ~ 601. Vous pouvez voir ce code ci-dessous faux

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

Remplacez simplement ce code par celui ci-dessous.

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

Enregistrez le fichier et accédez à PhpMyAdmin .

Maintenant ça marche bien 🙂

phpmyadmin 4.7.4 est supposé avoir “résolu plusieurs problèmes de compatibilité avec PHP 7.2”

Les chances sont que vous avez une version plus ancienne de phpmyadmin.

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

J’ai trouvé ceci https://jira.mariadb.org/browse/MDEV-14973

Cela fonctionne parfaitement sur ma configuration: Debian 9, PHP 7.2.3-1 + 0 ~ 20180306120016.19 + stretch ~ 1.gbp81bf3b (cli) (construit: Mar 6 2018 12:00:19) (NTS)

Ouvrez /usr/share/phpmyadmin/libraries/sql.lib.php Changer de ligne: Déplacez la parenthèse avant ==

|| (count ($ parsing_sql_results [‘select_expr’] == 1 )

dans

 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_parsing']) && $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; } 

Editez le fichier ‘/usr/share/phpmyadmin/libraries/sql.lib.php’ Remplacez: (count($analyzed_sql_results['select_expr'] == 1) Avec: (count($analyzed_sql_results['select_expr']) == 1

cela a fonctionné pour moi

Si quelqu’un a une erreur similaire dans la page d’exportation de la firebase database (j’avais ce problème dans Ubuntu 18.04), remplacez la ligne 551 du fichier /usr/share/phpmyadmin/libraries/plugin_interface.lib.php par le code

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

Procédez comme suit à ubuntu-18.04:

Étape 1) localisez sql.lib.php
Il affichera quelque chose comme: /usr/share/phpmyadmin/libraries/sql.lib.php

Étape 2) Ouvrez le terminal (Alt t) et écrivez: sudo / usr / sbin / pma-configure

Etape 3) sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php et recherchez la fonction ci-dessous:

 

     function PMA_isRememberSortingOrder ($ parsing_sql_results)
      {
         return $ GLOBALS ['cfg'] ['RememberSorting']
             &&!  ($ parsing_sql_results ['is_count']
                 ||  $ Analyse_sql_results ['is_export']
                 ||  $ parsing_sql_results ['is_func']
                 ||  $ parsing_sql_results ['is_parsing'])
             && $ analysé_sql_results ['select_from']
             && ((vide ($ parsing_sql_results ['select_expr']))
                 ||  (count ($ parsing_sql_results ['select_expr'] == 1)
                     && ($ parsing_sql_results ['select_expr'] [0] == '*')))
             && count ($ parsing_sql_results ['select_tables']) == 1;
      }

Étape 4) Remplacez la fonction ci-dessus par:


      function PMA_isRememberSortingOrder ($ parsing_sql_results)
      {
         return $ GLOBALS ['cfg'] ['RememberSorting']
             &&!  ($ parsing_sql_results ['is_count']
                 ||  $ Analyse_sql_results ['is_export']
                 ||  $ parsing_sql_results ['is_func']
                 ||  $ parsing_sql_results ['is_parsing'])
             && $ analysé_sql_results ['select_from']
             && ((vide ($ parsing_sql_results ['select_expr']))
                 ||  (count ($ parsing_sql_results ['select_expr']) == 1)
                     && ($ parsing_sql_results ['select_expr'] [0] == '*'))
             && count ($ parsing_sql_results ['select_tables']) == 1;
      }

étape 4) Enregistrer et fermer le fichier et la commande ci-dessous sur le terminal sudo / usr / sbin / pma-secure

Etape 5) sudo service mysql reload Etape 6) sudo service apache2 reload

Ca marche pour moi .. Goodluck

Fonctionne sur UBUNTU 16.04.3 Ouvrez juste

usr / share / libraries / sql.lib.php

modifier

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

À

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

Essayez de remplacer cette fonction dans le fichier: /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_parsing']) && $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; } 

Editez le fichier ‘/usr/share/phpmyadmin/libraries/sql.lib.php’ Remplacez: (faites une sauvegarde)

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

Avec:

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

Le moyen le plus simple est de modifier manuellement le bogue: https://medium.com/@chaloemphonthipkasorn/%E0%B9%81%E0%B8%81%E0%B9%89-bug-phpmyadmin-php7-2-ubuntu-16- 04-92b287090b01

J’ai eu ce problème en utilisant Windows et les réponses ci-dessus ont résolu pour moi, cependant quand je suis passé à Linux (Ubuntu 18.04 LTS) j’avais le même problème et ne pouvais pas comprendre comment le résoudre parce que je n’ai pas vu le fichier ‘/usr/share/phpmyadmin/libraries/sql.lib.php’.

Ce fichier sql.lib.php ne se trouvait pas dans le dossier de partage ni dans le dossier phpmyadmin / libraries de mon répertoire / opt / lampp, car j’utilisais xampp sur mon ubuntu. Basé sur la mise à jour faite à la configuration de xampp (parce que j’ai utilisé la dernière installation à ce jour).

La réponse est toujours de remplacer: (count($analyzed_sql_results['select_expr'] == 1)

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

Cependant, le fichier à rechercher est Sql.php trouvé dans /opt/lampp/phpmyadmin/libraries/classes/Sql.php

Prochaines mises à jour ou si vous ne le trouvez toujours pas: utilisez grep -r 'count($analyzed_sql_results' /opt/lampp/phpmyadmin pour rechercher les documents correspondants dans votre répertoire et les modifier en conséquence

Mettre à niveau vers phpMyAdmin 4.8.3. cela résout les problèmes de compatibilité avec PHP 7.2

Editer le fichier ‘/usr/share/phpmyadmin/libraries/sql.lib.php’

voir une erreur sur votre erreur

./libraries/sql.lib.php#2038: PMA_isRememberSortingOrder (array) ./libraries/sql.lib.php#1984: PMA_executeQueryAndGetQueryResponse (

allez sur cette ligne et supprimez l’appel de fonction.

Ça marche pour moi. Je vous remercie

mettre @count () où il donne l’erreur, il masquera l’erreur ..

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

J’espère que cela va régler le problème