Как заставить PHPMyAdmin отображать предупреждения MySQL?

Я использую PHPMyAdmin для удобства обновления удаленной базы данных.

Но по умолчанию он не показывает предупреждений, из-за которых я недавно столкнулся с неприятной проблемой, когда я обновлял поле SET со строкой, отсутствующей в его списке, и не замечал проблемы.

Я использую 2.11.9.1 (Dreamhost's default install).

В вики PHPMyAdmin он перечисляет «Отображать предупреждения» как функцию версия 2.9.0 и даже «Отображать все предупреждения» как функцию 2.10.2 - но как мне на самом деле включить это? Документация невелика.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
2 408
4

Ответы 4

Я могу ошибаться, но если я правильно помню, вам нужен доступ к конфигурационному файлу phpMyAdmin, чтобы включить его.

Я не верю, что Dreamhost дает вам доступ к файлу конфигурации для их установки phpMyAdmin. Однако вы можете легко выполнить собственную установку phpMyAdmin, загрузив исходный код из их сайт и просто развернув его в каталог, в котором вы хотите получить к нему доступ (например, your-domain.com/phpma). Затем следуйте инструкции веб-сайта по редактированию файла конфигурации (который должен включать предупреждения, как вы просили).

follow the website's instructions for editing your config file (which should include enabling warnings like you've asked).

Ну да, должно. Но я не вижу его в файле конфигурации и на странице, на которую вы ссылаетесь. Поверьте, я уже искал информацию в очевидных местах.

Я просто искал то же самое.

Когда я запускал INSERTs, используя стандартную форму вставки phpMyAdmin, строки вставлялись, но появлялась красная полоса с предупреждениями. Но когда я сделал объемная вставка, никаких предупреждений не появлялось, а вместо этого появлялась зеленая полоса, просто указывающая количество затронутых строк (создавая впечатление, что все прошло успешно, хотя на самом деле это могло не быть).

Я обнаружил, что мне нужно отправить команду SHOW WARNINGS вручную. Например, при выполнении этого запроса я помещаю оба оператора в поле SQL phpMyAdmin.

INSERT INTO test2 SELECT * FROM test1;
SHOW WARNINGS;

Это дало список предупреждений, подобных следующему ...

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


На заметку:

  • Вы не сможете запустить команду SHOW WARNINGS позже, она будет пустой. Он должен быть в поле с вашим первоначальным запросом, когда вы нажимаете «Перейти». Это связано с тем, что MySQL содержит предупреждения только для последнего выполненного вами запроса. Каждый раз, когда вы нажимаете ссылку или кнопку, phpMyAdmin запускает всевозможные другие запросы к БД, поэтому ваши предыдущие предупреждения теряются.
  • phpMyAdmin поддерживает НЕТ, отображающий несколько результатов из пользовательского запроса. Таким образом, выполняя это как один SQL-скрипт, НЕТ работает ... (начиная с версии 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;
    

    Хотя описанный выше метод не будет работать в phpMyAdmin, он ДОЛЖЕН отлично работает в клиенте командной строки MySQL. Так что используйте это, если вам нужно.

Если у вас есть несколько вставок и вы хотите показать все предупреждения, вам нужно связать их вместе как один оператор INSERT. Например:

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

Другие вопросы по теме