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,
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)
Dans phpMyAdmin ...
PHP est 7.2, le serveur est Ubuntu 16.04, installé hier.
J'ai vu que certains ont cette erreur dans leur code, mais je n'ai trouvé personne qui l'ait reçue dans phpMyAdmin ...
Que devrais-je faire? Est-ce que c'est mon erreur? Une erreur phpmyadmin? attendre la mise à jour? Je reviens à PHP 7.1?
Editer le fichier /usr/share/phpmyadmin/libraries/sql.lib.php
:
Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Remplacez: count($analyzed_sql_results['select_expr'] == 1)
Avec: (count($analyzed_sql_results['select_expr']) == 1)
Redémarrez le serveur Apache:
Sudo service Apache2 restart
Il suffit d’exécuter la ligne de commande ci-dessous dans le terminal et de revenir à PhpMyAdmin. Maintenant ça marche bien :)
Sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php
Ouvrir le fichier sql.lib.php
nano /usr/share/phpmyadmin/libraries/sql.lib.php
Rechercher le code count($analyzed_sql_results['select_expr']
dans le fichier. Vous pouvez l'obtenir à la ligne ~ 613 . Vous pouvez voir ci-dessous un code erroné
|| (count($analyzed_sql_results['select_expr'] == 1)
Il suffit de remplacer ce code erroné par celui ci-dessous
|| ((count($analyzed_sql_results['select_expr']) == 1)
Enregistrez le fichier et accédez à PhpMyAdmin .
Maintenant ça marche bien :)
testé sur Debian, devrait fonctionner sur Ubuntu:
1.) Téléchargez d’abord le dernier fichier phpMyadmin.
2.) Supprimez (faites une sauvegarde) tout le fichier de la version précédente situé dans le répertoire /usr/share/phpmyadmin
.
3.) Décompressez dans le répertoire /usr/share/phpmyadmin/
tous les fichiers de la dernière version de phpmyadmin.
4.) Modifier le fichier libraries/vendor_config.php
et changer de ligne:
define('CONFIG_DIR', '');
à
define('CONFIG_DIR', '/etc/phpmyadmin/');
et
define('TEMP_DIR', './tmp/');
à
define('TEMP_DIR', '/tmp/');
5.) redémarrez le serveur Apache et faites.
J'ai trouvé ceci PHP 7.2 count () - erreur SYNTAX dans sql.lib.php
Cela fonctionne parfaitement sur ma config:
Debian 9,
PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar 6 2018 12:00:19) ( NTS )
Ouvrir/usr/share/phpmyadmin/libraries/sql.lib.php
Change line: Déplace la parenthèse avant ==
|| ( (nombre ($ analys_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_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;
}
Editer le fichier : '/usr/share/phpmyadmin/libraries/sql.lib.php'
Remplacer : (count($analyzed_sql_results['select_expr'] == 1)
Avec : (count($analyzed_sql_results['select_expr']) == 1
cela a fonctionné pour moi
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
phpmyadmin 4.7.4 est censé avoir "corrigé plusieurs problèmes de compatibilité avec PHP 7.2"
Il est fort probable que vous ayez une version plus ancienne de phpmyadmin.
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/
Si quelqu'un a une erreur similaire dans la page d'exportation de base de données (j'avais ce problème dans Ubuntu 18.04), remplacez la ligne 551 dans le 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) localise sql.lib.php
Il montrera quelque chose comme:
/usr/share/phpmyadmin/libraries/sql.lib.php
Étape 2) Ouvrez le terminal (Alt t) et écrivez:
Sudo /usr/sbin/pma-configure
Étape 3) Sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
Et recherchez la fonction ci-dessous:
fonction PMA_isRememberSortingOrder ($ installed_sql_results) { retourne $ GLOBALS ['cfg'] ['RememberSorting'] &&! ($ analys_sql_results ['is_count'] || $ analys_sql_results ['is_export'] || $ analys_sql_results ['is_func'] || $ analysé_sql_results ['is_analyse']) && $ installed_sql_results ['select_from'] && ((vide ($ installed_sql_results ['select_expr']))) || (count ($ installed_sql_results ['select_expr'] == 1) && ($ installed_sql_results ['select_expr'] [0] == '*'))) && count ($ installed_sql_results ['select_tables']) == 1; }
Étape 4) Remplacez la fonction ci-dessus par:
fonction PMA_isRememberSortingOrder ($ installed_sql_results) { retourne $ GLOBALS ['cfg'] ['RememberSorting'] &&! ($ analys_sql_results ['is_count'] || $ analys_sql_results ['is_export'] || $ analys_sql_results ['is_func'] || $ analysé_sql_results ['is_analyse']) && $ installed_sql_results ['select_from'] && ((vide ($ installed_sql_results ['select_expr']))) || (count ($ installed_sql_results ['select_expr']) == 1) = '*')) && count ($ installed_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
Étape 5) Sudo service mysql reload
Étape 6) Sudo service Apache2 reload
Ça marche pour moi ... Goodleuck
Warning dans ./libraries/plugin_interface.lib.php#532
count (): le paramètre doit être un tableau ou un objet qui implémente Dénombrable
couse de la bibliothèque de phpmyadmin, essayez de compter certains paramètres. À cette ligne 532, j'ai trouvé ce code dans ce chemin.
Edit File/usr/share/phpmyadmin/libraries/plugin_interface.lib.php
à la ligne 532:
Sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Recherchez la ligne if ($options != null && count($options) > 0) {
et remplacez count($options)
par count((array)$options)
.
Redémarrez le service Apache:
Sudo service Apache2 restart
Dans la nouvelle version de PHP, il ne peut pas utiliser count () ou sizeof () avec un type array. Vous devez donc forcément changer le paramètre pour mettre en tableau ici.
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_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;
}
Travaille pour moi .. Ubuntu 18.04
Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Rechercher le code count($analyzed_sql_results['select_expr']
dans le fichier. Vous pouvez l'obtenir à la ligne ~ 613.
|| (count($analyzed_sql_results['select_expr'] == 1)
Il suffit de remplacer par le code:
|| ((count($analyzed_sql_results['select_expr']) == 1)
Enregistrez le fichier et rechargez PhpMyAdmin.
Terminé!!!
Ubuntu 18.10 (décembre 2018)
Lignes 613, 614 et 615, remplacer par:
|| count($analyzed_sql_results['select_expr']) == 1
&& ($analyzed_sql_results['select_expr'][0] == '*'))
&& count($analyzed_sql_results['select_tables']) == 1;
Je pense que la meilleure option est de mettre à jour Phpmyadmin vers une version qui a déjà résolu ce problème.
Jusqu'à ce qu'il soit publié en deb, vous pouvez le faire comme dans @ crimson-501 answer que je vais copier ci-dessous:
apt-get install phpmyadmin
.cd /usr/share
.rm -rf phpmyadmin
.apt-get install wget
): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-english.Zip"
Laissez-moi vous expliquer les arguments de cette commande, -P définit le chemin et "le lien.Zip" est actuellement ( 17/07/18) la dernière version de PMA. Vous pouvez trouver ces liens ICI .apt-get install unzip
): unzip phpMyAdmin-4.8.2-english.Zip
. Nous venons de décompresser PMA, nous allons maintenant le déplacer vers son dernier domicile.cp
(copy) pour déplacer nos fichiers! Notez que nous devons ajouter l'argument -r
puisqu'il s'agit d'un dossier. cp -r phpMyAdmin-4.8.2-english phpmyadmin
.rm -rf phpMyAdmin-4.8.2-english
.Vous pouvez maintenant remarquer deux erreurs après vous être connecté à 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.
Cependant, ces problèmes sont relativement faciles à résoudre. Pour le premier numéro, tout ce que vous avez à faire est de saisir l'éditeur de votre choix et de modifier /usr/share/phpmyadmin/config.inc.php
, mais il y a un problème, nous l'avons supprimé! C'est bon, tout ce que vous avez à faire est: cd /usr/share/phpmyadmin
& cp config.sample.inc.php config.inc.php
.
nano config.inc.php
et copiez le secret généré dynamiquement depuis le bas de cette page: https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator .Exemple de saisie de variable secrète phpMyAdmin de 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! */
Maintenant, enregistrez et fermez le fichier.
mkdir tmp
& chown -R www-data:www-data /usr/share/phpmyadmin/tmp
. La dernière commande permet au serveur Web Apache de posséder le répertoire tmp et d’éditer son contenu.Editer le fichier '/usr/share/phpmyadmin/libraries/sql.lib.php' Remplacer: (Faire 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));"
Passez à phpMyAdmin 4.8.3. cela résout les problèmes de compatibilité PHP 7.2
J'avais ce problème lorsque j'utilisais Windows et les réponses ci-dessus l'ont résolu, mais lorsque je suis passé à Linux (Ubuntu 18.04 LTS), le problème était le même et je ne savais pas comment le résoudre car je ne voyais pas 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 . J'ai utilisé la dernière installation à partir de maintenant) configuration.
La réponse est toujours à 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
Mises à jour futures ou si vous ne les 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.
J'ai essayé toutes les solutions ci-dessus mais cela n'a pas fonctionné pour moi.
Essaye ça:-
Installez la version requise de PHP (dans mon cas 7.0), puis dans le terminal, tapez
Sudo update-alternatives --config php
La sortie sera comme ceci: -
Ensuite, vous pouvez passer à n’importe quelle version de PHP en entrant simplement le numéro de sélection (dans mon cas 1).
J'espère que cela peut aider les autres - :)
|| ((count($analyzed_sql_results['select_expr']) == 1
C'est ce que j'ai changé à la ligne 614 et phpmyadmin fonctionne sans erreur. Besoin d'un (
avant le décompte et d'un )
avant le ==
. C'est tout.
aucune de ces solutions ne fonctionnait pour moi; vous devez mettre à jour phpmyadmin à la dernière, suivez les instructions ici
https://askubuntu.com/questions/947805/how-to-upgrade-phpmyadmin-revisited
ouvrir ce fichier: '/usr/share/phpmyadmin/libraries/sql.lib.php'
Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
appuyez sur ctrl + w pour lancer la recherche (nombre ($ installed_sql_results ['select_expr'] == 1.)
Find: count($analyzed_sql_results['select_expr'] == 1)
Replace With: (count($analyzed_sql_results['select_expr']) == 1)
Redémarrer le serveur
Sudo service Apache2 restart
Ceci est corrigé dans les versions ultérieures de PHPMyAdmin. Les référentiels logiciels Ubuntu pour Ubuntu 18.04.2 contiennent la version 4.6.6.5, alors qu'ils sont actuellement à la version 4.9.0.1. La mise à jour de votre installation PHPMyAdmin résoudra ce problème, mais pourrait s'avérer plus risquée que la simple modification de cette ligne de code. Voici comment je l'ai fait sur mon serveur Ubuntu. Les étapes sont essentiellement les mêmes (avec un chemin différent) pour tous les systèmes d'exploitation.
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
cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup
cd phpMyAdmin-4.9.0.1-all-languages
rm -r /usr/share/phpmyadmin/doc/html
cp -R * /usr/share/phpmyadmin/
Vérifiez que cela fonctionne. Si ce n'est pas le cas, welll ... Vous avez une sauvegarde, restaurez-la et modifiez manuellement la ligne défectueuse. D'après mon expérience personnelle, j'ai découvert par la suite que la version 4.6.6.5 était non seulement semée de bogues, mais aussi incroyablement lente par rapport à la nouvelle version 4.9.0.1. L’augmentation de vitesse était une pure magie pour quelque chose qui me semblait de qualité "WordPress".
Sous Ubuntu 18.04 avec MariaDb et Nginx, je l'ai résolu en mettant à jour le fichier /usr/share/phpmyadmin/libraries/sql.lib.php comme suit:
|| (count($analyzed_sql_results['select_expr']) == 1
La réponse mentionnée par @Nguyen émet une erreur 500 en disant:
FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected ')', expecting ';' in /usr/share/phpmyadmin/libraries/sql.lib.php on line 614"
Remplacer la fonction:
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;
}
Ouvrez le fichier /usr/share/phpmyadmin/sql.lib.php
avec des privilèges élevés et modifiez les éléments suivants dans la fonction PMA_isRememberSortingOrder()
:
|| 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] == '*'))
Redémarrez votre serveur Apache: Sudo service Apache2 restart
.
Testé sur Linux Mint 19.1 basé sur Ubuntu 18.04, avec PhpMyAdmin 4.6.6 et PHP 7.2.
Il n'est pas nécessaire d'utiliser count s'il s'agit d'une valeur unique ou non, car il s'agit d'un problème en premier lieu. Vous pouvez en lire plus à ce sujet ici http://php.net/manual/en/function.count.php
Maintenant, compter ne fonctionnera pas sur NULL, Boolean, String, Integer. C'est la raison ici et vous devez seulement remplacer le compte avec vide.
Découvrez ce que j'ai fait
&& ((empty($analyzed_sql_results['select_expr']))
|| (!empty($analyzed_sql_results['select_expr'])
&& ($analyzed_sql_results['select_expr'][0] == '*')))
Editez le fichier '/usr/share/phpmyadmin/libraries/sql.lib.php'
voir erreur sur votre erreur
,
allez sur cette ligne et supprimez l'appel de fonction.
Ça marche pour moi ..__ merci
Comme l’erreur dans le code du fichier de configuration peut varier (réponses de @Jacky Nguyen vs @ ĦΔŇĐŘΔ ŇΔҜҜΔ),
la solution générale answer serait to
a) corrige la logique de condition dans le fichier de configuration pour lui donner un sens
(x) ou b) installer phpmyadmin corrigé/actuel
Comme pour a)
ouvrir le fichier avec le code d'erreur
Pour les terminaux: Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Pour les gens ordinaires: Sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php
trouver la condition - essentiellement, rechercher $analyzed_sql_results['select_expr']
maintenant, la logique devrait être de vérifier si ce sous-tableau est vide ou s'il n'a qu'un seul élément avec une valeur "*
donc en gros le bloc
entre && $analyzed_sql_results['select_from']
et && count($analyzed_sql_results['select_tables']) == 1
devrait ressembler à quelque chose comme ça
&& ( 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 "*" ) )
Bonjour les suivants résolvent absolument le même problème (import/export, etc.):
Correction d'un bug Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04
alors ... sous Ubuntu 18.04, mysql, php7.2: Terminal:
Sudo gedit /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Trouvez la ligne suivante (ctrl + f):
if ($options != null && count($options) > 0) {
c'était sur la ligne 551 pour moi
et changer pour suivre:
if ($options != null && count((array)$options) > 0) {
ctrl + s pour enregistrer les modifications
et en terminal: ctrl + c pour revenir en arrière ...
et:Sudo systemctl restart Apache2
"Je pense que dans la nouvelle version de PHP. Il ne peut pas utiliser count () ou sizeof () avec un type de tableau. Le paramètre Force to array est un moyen facile de résoudre ce bogue, ..."
Merci à l'auteur original pour la résolution du problème! J'essaye de le partager!
Dans mon cas (Ubuntu 18.04), les solutions ci-dessus ne fonctionnaient pas. Je n'ai pas compris pourquoi. Ensuite, j'ai remarqué que j'avais aussi plusieurs autres messages d'avertissement. Après quelques recherches, j'ai découvert que ma version de PHP (7.2) n'était pas compatible avec ma version de PHPMyAdmin. Donc tout ce que j'ai fait était de mettre à jour le dernier (version 4.8.4).
Jetez un coup d'œil: https://devanswers.co/problem-php-7-2-phpmyadmin-warning-in-librariessql-count/
Tout d’abord, sauvegardez sql.lib.php avant d’être édité. Éditez sql.lib.php dans nano.
$ Sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
Appuyez sur CTRL + W et recherchez (nombre ($ installed_sql_results ['select_expr'] = = 1)
Remplacez-le par ((count ($ installed_sql_results ['select_expr'])) == 1)
Enregistrez le fichier et quittez. (Appuyez sur CTRL + X, appuyez sur Y puis sur ENTRÉE)
Pour ma version de phpmyadmin (4.6.6deb5), j'ai trouvé la ligne 613 et me suis rendu compte que les parenthèses count () n'étaient pas fermées correctement. Pour résoudre ce problème temporairement jusqu'à la prochaine version, changez simplement:
|| (count($analyzed_sql_results['select_expr'] == 1)
à:
|| (count($analyzed_sql_results['select_expr']) == 1