【问题标题】:Why I can't get the warning messages as phpmyadmin does?为什么我不能像 phpmyadmin 那样得到警告信息?
【发布时间】:2011-08-04 12:12:46
【问题描述】:

我什至可以使用abc 作为DATETIME 列的值。

为什么它根本不做验证?

更新

关于 phpmyadmin 如何获取警告:

通过阅读它的代码,我发现它来自show warnings,但我无法在命令行 MySQL 中重现它。

mysql> UPDATE `test`.`uu3` SET `id` = 'x',dt='ab1c' WHERE `uu3`.`id` =3 AND `uu3`.`id2` =4;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql> SHOW WARNINGS;
Empty set (0.00 sec)

mysql> desc `test`.`uu3`;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned | NO   |     | NULL    |       |
| id2   | int(10) unsigned | NO   |     | NULL    |       |
| dt    | datetime         | NO   |     | NULL    |       |
+-------+------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

【问题讨论】:

  • phpmyadmin 是开源的,欢迎自己添加修复
  • @ajreal ,它是开源的,但现在应该已经足够成熟了,它必须有理由不这样做。

标签: php phpmyadmin


【解决方案1】:

不,它进行了正确的验证。

当我尝试将值“abc”添加到字段“date_time”(其数据类型为“DATETIME”)时,我收到此错误“警告:#1264 Out of为第 1 行“日期时间”列调整的范围值

但是,该行插入成功,但该字段的值自动更改为“0000-00-00 0000:00:00”。

我使用的是 3.3.10.2 版本的 phpMyAdmin。

希望对你有帮助。

【讨论】:

  • 你知道警告信息是从哪里来的吗?
  • 真的很抱歉,但我认为应该发出验证消息的是 phpMyAdmin。同样默认情况下,它应该正确地发出验证消息,因此重新安装 phpMyAdmin 对您的未来发展最有利。
  • 错了,我正在阅读它的代码,它来自show warnings,但我无法在命令行 MySQL 中重现它。
猜你喜欢
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多