warning update that pma_plugingetoptions parameter must lib display_import array actualizar phpmyadmin countable

update - phpmyadmin-count(): el parámetro debe ser una matriz o un objeto que implemente Contable



warning in./libraries/sql.lib.php#613 ubuntu (30)

abra este archivo: ''/usr/share/phpmyadmin/libraries/sql.lib.php''

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

presione ctrl + w para buscar (cuenta ($ analyst_sql_results [''select_expr''] == 1)

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

Reiniciar el servidor

sudo service apache2 restart

Además, si aún enfrenta el mismo problema, haga lo siguiente.

abra este archivo /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

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

Buscar: if ($ options! = Null && count ($ options)> 0) {

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

reemplazar con el siguiente código

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

ahora guarde y reinicie el servidor

sudo /etc/init.d/apache2 restart

He cargado la copia de seguridad en una tabla, abriendo la tabla, veo esto:

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)

Dentro de phpMyAdmin ...

PHP es 7.2, el servidor es Ubuntu 16.04, instalado ayer.

Buscando, vi que algunos tienen este error en su código, pero no encontré a nadie que lo recibió en phpMyAdmin ...

¿Qué tengo que hacer? ¿Ese es mi error? ¿Un error de phpmyadmin? esperar actualización? Vuelvo a PHP 7.1?


Método más fácil:

Simplemente ejecute esta línea de comando debajo de la terminal y regrese a PhpMyAdmin. Ahora funciona bien :)

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

Método manual:

Abra el archivo sql.lib.php

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

Busque el código count($analyzed_sql_results[''select_expr''] en el archivo. Puede obtener esto en la línea ~ 613. Puede ver esto debajo del código incorrecto

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

Simplemente reemplace ese código incorrecto con este debajo de uno

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

Guarda el archivo y ve a PhpMyAdmin .

Ahora funciona bien :)


Abra el archivo /usr/share/phpmyadmin/sql.lib.php con privilegios elevados y edite lo siguiente en la función PMA_isRememberSortingOrder() :

  1. ~ línea 613 para corregir el error inicial:
    • Reemplazar || count($analyzed_sql_results[''select_expr''] == 1) || count($analyzed_sql_results[''select_expr''] == 1)
    • Con || (count($analyzed_sql_results[''select_expr'']) == 1) || (count($analyzed_sql_results[''select_expr'']) == 1)
  2. ~ línea 614 para corregir el error 500 que probablemente seguirá:
    • Reemplazar && ($analyzed_sql_results[''select_expr''][0] == ''*'')))
    • Con && ($analyzed_sql_results[''select_expr''][0] == ''*''))

Reinicie su servidor Apache: sudo service apache2 restart .

Probado en Linux Mint 19.1 basado en Ubuntu 18.04, con PhpMyAdmin 4.6.6 y PHP 7.2.


Actualice a phpMyAdmin 4.8.3. esto resuelve los problemas de compatibilidad de PHP 7.2


Como el error en el código en el archivo conf puede variar (@Jacky Nguyen vs @ ĦΔŇĐŘΔ ŇΔҜҜΔ responde),
la respuesta general a la solución sería
a) corrija la lógica de condición en el archivo conf para que tenga sentido
(x) ob) instalar phpmyadmin corregido / actual

En cuanto a a)

  1. abre el archivo con código de error
    Para las personas terminales: sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php
    Para la gente normal: sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php

  2. encuentre la condición - básicamente busque $analyzed_sql_results[''select_expr'']

  3. ahora la lógica debería ser verificar si esta matriz secundaria está vacía o si solo tiene 1 elemento con un valor " *

  4. así que básicamente el bloque
    entre && $analyzed_sql_results[''select_from'']
    y && count($analyzed_sql_results[''select_tables'']) == 1
    debería verse así

&& ( 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 "*" ) )

Este es un buen ejemplo de por qué sangrar y embellecer su código, si estuviera indentado correctamente, creo que esto nunca sucedería, o al menos, sería más fácil de encontrar.


Continúe siguiendo los pasos en ubuntu-18.04:

Paso 1) ubica sql.lib.php

Mostrará algo como:

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

Paso 2) Abra la terminal (Alt t) y escriba:

sudo /usr/sbin/pma-configure

Paso 3) sudo gedit /usr/share/phpmyadmin/libraries/sql.lib.php y busque la siguiente función:

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

Paso 4) Reemplace la función anterior con:

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

Paso 4) Guardar y cerrar el archivo y debajo del comando en la terminal

sudo /usr/sbin/pma-secure

Paso 5) sudo service mysql reload

Paso 6) sudo service apache2 reload

Funciona para mí .. Buena suerte


Creo que la mejor opción es actualizar Phpmyadmin a una versión que ya lo haya solucionado.

Hasta que se publique como deb, puede hacerlo como en la respuesta @ crimson-501 que copiaré a continuación:

  • Su primer paso es instalar PMA (phpMyAdmin) desde el repositorio oficial de Ubuntu: apt-get install phpmyadmin .
  • Luego, cd en el directorio usr / share: cd /usr/share .
  • Tercero, elimine el directorio phpmyadmin: rm -rf phpmyadmin .
  • Ahora necesitamos descargar la última versión de PMA en nuestro sistema (tenga en cuenta que necesita wget: apt-get install wget ): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-english.zip" Permítanme explicar los argumentos de este comando, -P define la ruta y" link.zip "es actualmente (17/07/18) la última versión de PMA. Puedes encontrar esos enlaces HERE .
  • Para el siguiente paso necesita descomprimir ( apt-get install unzip ): unzip phpMyAdmin-4.8.2-english.zip . Acabamos de descomprimir PMA, ahora lo trasladaremos a su hogar final.
  • ¡Usemos el comando cp (copiar) para mover nuestros archivos! Tenga en cuenta que tenemos que agregar el argumento -r ya que esta es una carpeta. cp -r phpMyAdmin-4.8.2-english phpmyadmin .
  • Ahora es el momento de limpiar: rm -rf phpMyAdmin-4.8.2-english .

¡Sigue leyendo!

Ahora puede notar dos errores después de iniciar sesión en 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.

Sin embargo, estos problemas son relativamente fáciles de solucionar. Para el primer problema, todo lo que tiene que hacer es tomar el editor de su elección y editar /usr/share/phpmyadmin/config.inc.php pero hay un problema, ¡lo eliminamos! Está bien, todo lo que tiene que hacer es: cd /usr/share/phpmyadmin & cp config.sample.inc.php config.inc.php .

Ejemplo de entrada variable secreta 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! */

Ahora guarde y cierre el archivo.

  • Ahora crearemos un directorio tmp para PMA: mkdir tmp & chown -R www-data:www-data /usr/share/phpmyadmin/tmp . El último comando permite que el servidor web Apache sea el propietario del directorio tmp y edite su contenido.

Echa un vistazo: https://devanswers.co/problem-php-7-2-phpmyadmin-warning-in-librariessql-count/

En primer lugar, haga una copia de seguridad de sql.lib.php antes de editar. Edite sql.lib.php en nano.

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

Presione CTRL + W y busque (cuenta ($ analyst_sql_results [''select_expr''] == 1)

Reemplácelo con ((count ($ analyted_sql_results [''select_expr'']) == 1)

Guardar archivo y salir. (Presione CTRL + X, presione Y y presione ENTRAR)


Edite el archivo /usr/share/phpmyadmin/libraries/sql.lib.php :

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

En la línea 613, la función de conteo siempre se evalúa como verdadera ya que no hay paréntesis de cierre después de $analyzed_sql_results[''select_expr''] . Hacer los reemplazos a continuación resuelve esto, entonces necesitará eliminar el último paréntesis de cierre en la línea 614, ya que ahora es un paréntesis adicional.

Reemplazar:

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

Con:

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

Reinicie el servidor apache:

sudo service apache2 restart


Edite el archivo ''/usr/share/phpmyadmin/libraries/sql.lib.php'' Reemplace: (haga una copia de seguridad)

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

Con:

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


En Ubuntu 18.04 con MariaDb y Nginx, lo resolví actualizando el archivo /usr/share/phpmyadmin/libraries/sql.lib.php de la siguiente manera:

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

La respuesta mencionada por @Nguyen arroja un error 500 diciendo:

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


Encontré este PHP 7.2 count () - Error de SINTAXIS en sql.lib.php

Eso funciona perfectamente en mi configuración:

Debian 9, PHP 7.2.3-1+0~20180306120016.19+stretch~1.gbp81bf3b (cli) (built: Mar 6 2018 12:00:19) ( NTS )

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

Cambiar línea : mover paréntesis antes ==

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

en

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


Esto se soluciona en versiones posteriores de PHPMyAdmin. Los repositorios de software de Ubuntu para Ubuntu 18.04.2 tienen la versión 4.6.6.5, mientras que actualmente están en 4.9.0.1. La actualización de su instalación de PHPMyAdmin solucionará este problema, pero podría resultar más riesgoso que simplemente editar esa línea de código. Así es como lo hice en mi servidor Ubuntu. Los pasos son esencialmente los mismos (con una ruta diferente) para todos los sistemas operativos.

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

  1. Haga una copia de seguridad de su antigua instalación PHPMyAdmin.

cp -r /usr/share/phpmyadmin ~/phpmyadmin-backup

  1. Coloque su nuevo PHPMyAdmin en su antiguo PHPMyAdmin

cd phpMyAdmin-4.9.0.1-all-languages rm -r /usr/share/phpmyadmin/doc/html cp -R * /usr/share/phpmyadmin/

Verifica que funcione. Si no es así, bueno ... Tiene una copia de seguridad, así que restaure y edite manualmente la línea defectuosa. En mi propia experiencia personal, descubrí después de hacer esto que la versión 4.6.6.5 no solo estaba plagada de errores, sino que también era increíblemente lenta en comparación con la nueva 4.9.0.1. El aumento de velocidad fue pura magia para algo que pensé que era de calidad "WordPress".


Función is_countable introducida en (PHP 7> = 7.3.0)

is_countable: verifique que el contenido de una variable sea un valor contable.

use esta función de la siguiente manera ::

is_countable ( $var )

Devolverá un valor booleano. Para obtener más detalles, visite http://php.net/manual/en/function.is-countable.php


Funciona en UBUNTU 16.04.3 Solo abre

usr / share / bibliotecas / sql.lib.php

modificar

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

A

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


Hola, los siguientes resuelven mi mismo problema absolutamente (importación / exportación, etc.):

Fix Bug Phpmyadmin [plugin_interface.lib.php] + Php7.2 + Ubuntu 16.04

entonces ... bajo ubuntu 18.04, mysql, php7.2: Terminal:

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

Encuentre la siguiente línea (ctrl + f):

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

estaba en la línea # 551 para mí

y cambiar por lo siguiente:

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

Ctrl + s para guardar los cambios

y en la terminal: ctrl + c para volver pronto ...

y: sudo systemctl restart apache2

"Creo que en la nueva versión de PHP. No se puede usar count () o sizeof () con un tipo de matriz. Forzar parámetro a matriz es una manera fácil de resolver este error, ..."

¡Gracias por el autor original por la resolución del problema! ¡Intento compartirlo!


Intenté toda la solución anterior pero no funcionó para mí.

Prueba esto:-

Instale la versión requerida de PHP (en mi caso 7.0) y luego en la terminal, escriba

sudo update-alternatives --config php

La salida será así: -

Luego puede cambiar a cualquier versión de PHP simplemente ingresando el número de selección (en mi caso 1).

Espero que esto pueda ayudar a otros - :)


Intente reemplazar esta función en el archivo: /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; }


Para mi versión de phpmyadmin (4.6.6deb5), encontré la línea 613 y me di cuenta de que los paréntesis count () no se cerraron correctamente. Para arreglar esto temporalmente hasta la próxima versión, simplemente cambie:

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

a:

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


Reemplazar función:

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



Si alguien tiene un error similar en la página de exportación de DB (tuve este problema en Ubuntu 18.04), reemplace la línea 551 en el archivo /usr/share/phpmyadmin/libraries/plugin_interface.lib.php con código

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


Trabaja para mí .. Ubuntu 18.04

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

Busque el código de count($analyzed_sql_results[''select_expr''] en el archivo. Puede obtenerlo en la línea ~ 613.

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

Simplemente reemplace con el código:

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

Guarde el archivo y vuelva a cargar PhpMyAdmin.

¡¡¡Hecho!!!


Tuve este problema al usar Windows y las respuestas anteriores me lo resolvieron, sin embargo, cuando cambié a Linux (ubuntu 18.04 LTS) tuve el mismo problema y no pude encontrar la manera de resolverlo porque no vi el archivo ''/usr/share/phpmyadmin/libraries/sql.lib.php''.

Este archivo sql.lib.php no estaba en la carpeta compartida ni en la carpeta phpmyadmin / collections de mi directorio / opt / lampp, ya que estaba usando xampp en mi ubuntu. Según la actualización realizada en la configuración de xampp (porque usé la última instalación hasta ahora).

La respuesta todavía es reemplazar: (count($analyzed_sql_results[''select_expr''] == 1)

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

Sin embargo, el archivo a buscar es Sql.php encuentra en /opt/lampp/phpmyadmin/libraries/classes/Sql.php

Actualizaciones futuras o si aún no lo encuentra: use grep -r ''count($analyzed_sql_results'' /opt/lampp/phpmyadmin para buscar documentos coincidentes en su directorio y edite en consecuencia


Ubuntu 18.10 (diciembre de 2018)

Línea 613, 614, 615, reemplace con:

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



probado en Debian, debería funcionar en Ubuntu:

1.) Primero descargue el último archivo phpMyadmin.

2.) Elimine (haga una copia de seguridad) todo el archivo de versión anterior ubicado en el directorio /usr/share/phpmyadmin .

3.) Descomprima al directorio /usr/share/phpmyadmin/ todos los archivos de la última versión de phpmyadmin.

4.) Modifique las libraries/vendor_config.php archivos libraries/vendor_config.php y cambie la línea:

define(''CONFIG_DIR'', '''');

a

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

y

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

a

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

5.) reinicie el servidor apache y listo.


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

Esto es lo que cambié en la línea 614 y phpmyadmin funciona sin ningún error. Necesita uno ( antes de contar y uno ) antes == . Eso es.


Editar archivo : ''/usr/share/phpmyadmin/libraries/sql.lib.php''

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

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

esto funcionó para mí


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