为什么我能';无法像phpmyadmin那样获得警告消息?

为什么我能';无法像phpmyadmin那样获得警告消息?,php,phpmyadmin,Php,Phpmyadmin,我甚至可以使用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:

我甚至可以使用
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)

不,它进行正确的验证

当我试图将值“
abc
”添加到字段“
date\u time
”(其数据类型为“
DATETIME
”)时,我得到了以下错误“警告:#1264超出了为第1行“date\u time”列调整的范围值”

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

我使用的是phpMyAdmin的3.3.10.2版本


希望有帮助。

phpmyadmin是开源的,欢迎添加修复程序yourself@ajreal,它是开源的,但现在应该足够成熟了,它一定有理由不这么做。你知道警告消息首先来自哪里吗?非常抱歉,但我认为应该是phpMyAdmin发出验证消息。另外,默认情况下,它应该正确地发出验证消息,因此为了您未来的发展,您最好重新安装phpMyAdmin。错误的是,我正在阅读它的代码,它来自
show warnings
,但我无法在命令行MySQL中复制它。