如何让PHPMyAdmin显示MySQL警告?

4

我使用 PHPMyAdmin 来方便地更新远程数据库。

但是,默认情况下它不会显示警告信息,这最近让我陷入了一些尴尬的麻烦。我正在使用 2.11.9.1(Dreamhost 的默认安装)

PHPMyAdmin wiki 上列出了 "显示警告" 作为 版本 2.9.0 的一个功能,甚至在 2.10.2 中列出了 "显示所有警告" 作为一个功能--但是我该如何打开它呢?文档并不是很好。

4个回答

1

我刚想找同样的东西。

当我使用标准的phpMyAdmin“插入”表单运行INSERT时,会插入行但出现一个红色的条形,指示任何警告。 但是当我进行批量插入时,不会出现警告,并且代替一个绿色的条形只显示受影响的行数(让您产生印象,它已经成功完成了,而实际上可能没有)。

我发现自己必须手动发送SHOW WARNINGS命令。例如,运行此查询时,我将两个语句放入phpMyAdmin SQL框中。

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命令,它将为空。它必须与您的初始查询一起出现在单击“Go”时的框中。这是因为MySQL仅保留您运行的最后一个查询的警告。每次单击链接或按钮phpMyAdmin都会在DB上运行各种其他查询,因此您之前的警告会丢失。
  • 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;

1

我不相信Dreamhost会给你访问他们安装的phpMyAdmin配置文件的权限。但是,你可以通过从他们的网站下载源代码并将其解压到你想要访问它的目录(例如your-domain.com/phpma)来轻松地创建自己的phpMyAdmin安装。然后,按照网站的说明编辑你的配置文件(其中应该包括启用警告,就像你所要求的那样)。


0

我可能记错了,但如果我没记错的话,你需要访问phpMyAdmin配置文件才能启用它。


0
请按照网站的说明编辑您的配置文件(其中应包括启用警告,就像您所要求的那样)。
是的,应该有。但我在配置文件中没有看到它,也没有在您提供链接的页面中看到它。相信我,我已经在显而易见的地方寻找信息了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接