usar insertar inc formulario desde datos configurar con como cfg allowarbitraryserver php mysql phpmyadmin

insertar - ¿Cómo hacer que PHPMyAdmin muestre las advertencias de MySQL?



php mysql (4)

siga las instrucciones del sitio web para editar su archivo de configuración (que debe incluir la habilitación de advertencias como las que ha solicitado).

Bueno, sí, debería. Pero no lo veo en el archivo de configuración y no lo veo en la página a la que se vinculó. Ya he buscado información en los lugares obvios, créanme.

Uso PHPMyAdmi n por conveniencia al actualizar una base de datos remota.

Pero no muestra advertencias, por defecto, lo que recientemente me metió en problemas embarazosos cuando estaba actualizando un campo SET con una cadena que no estaba en su lista y sin darme cuenta del problema.

Estoy usando 2.11.9.1 (Dreamhost''s default install) .

En el wiki de PHPMyAdmin , enumera "Mostrar advertencias" como una característica de la versión 2.9.0 e incluso "Mostrar todas las advertencias" como una característica de 2.10.2, pero ¿cómo puedo activarlo? La documentación no es genial.


No creo que Dreamhost le dé acceso al archivo de configuración para su instalación de phpMyAdmin. Sin embargo, puede realizar fácilmente su propia instalación de phpMyAdmin descargando el código fuente de su sitio web y simplemente desmarcándolo en el directorio al que desea acceder (por ejemplo, en su dominio-php.com). Luego, siga las instrucciones del sitio web para editar su archivo de configuración (que debería incluir la habilitación de advertencias como las que ha solicitado).


Podría estar equivocado, pero si recuerdo correctamente, debe tener acceso al archivo de configuración de phpMyAdmin para habilitarlo.


Solo estaba buscando lo mismo.

Cuando ejecuté INSERTs usando el formulario phpMyAdmin ''insert'' estándar, las filas se insertaban pero aparecía una barra roja que indicaba cualquier advertencia. Pero cuando hice una inserción masiva , no aparecieron las advertencias y apareció una barra verde que indicaba el número de filas afectadas (lo que le daba la impresión de que todo se había ido correctamente, cuando de hecho puede que no lo haya hecho).

Descubrí que tenía que enviar el comando SHOW WARNINGS manualmente. Por ejemplo, cuando ejecuto esta consulta, coloco ambas declaraciones en el cuadro phpMyAdmin SQL.

INSERT INTO test2 SELECT * FROM test1; SHOW WARNINGS;

Esto dio una lista de advertencias como la siguiente ...

Level Code Message Warning 1265 Data truncated for column ''a'' at row 1 Warning 1265 Data truncated for column ''a'' at row 3 Warning 1265 Data truncated for column ''b'' at row 3 Warning 1366 Incorrect integer value: ''x'' for column ''b'' at row...


Cosas a tener en cuenta:

  • No puede ejecutar el comando SHOW WARNINGS más tarde, aparecerá vacío. Debe estar en la casilla con su consulta inicial cuando hace clic en "Ir". Esto se debe a que MySQL solo contiene las advertencias de la última consulta que ejecutó. Cada vez que hace clic en un enlace o botón, phpMyAdmin ejecuta todo tipo de consultas en la base de datos y sus advertencias anteriores se pierden.
  • phpMyAdmin NO admite mostrar resultados múltiples de una consulta personalizada. Hacer esto como una secuencia de comandos SQL NO funciona ... (a partir de la versión 3.4.10.1)

    INSERT INTO test2 VALUES (''my text'', ''something else''); SHOW WARNINGS; # you won''t see the warnings from here INSERT INTO test2 VALUES (''my text'', ''something else''); SHOW WARNINGS;

    Aunque el método anterior no funcionará en phpMyAdmin, DEBERÍA funcionar bien en el cliente de línea de comandos de MySQL. Entonces usa eso si lo necesitas.

Si tiene varias inserciones y desea mostrar todas las advertencias, debe encadenarlas como una sola INSERT . Por ejemplo:

INSERT INTO test2 VALUES (''my text'', ''something else''), (''my text'', ''something else''); SHOW WARNINGS;