2011-08-04 58 views
-2

我甚至可以使用abc作为DATETIME列的值。为什么我不能像phpmyadmin那样获取警告消息?

为什么它根本没有验证?

UPDATE

关于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) 
+2

phpmyadmin是开源的,欢迎自己添加修复程序 – ajreal

+0

@ajreal,它是开源的,但现在应该足够成熟,它必须有它的理由不这样做。 –

回答

0

不,它做了适当的验证。

当我试图为值“abc”添加到字段“date_time”(其数据类型是“DATETIME”),那么我得到这个错误警告”:#1264超出范围值的调整列“DATE_TIME '在第1行“

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

我使用的是phpMyAdmin的版本3.3.10.2。

希望它有帮助。

+0

你知道警告信息来自哪里吗? –

+0

真的很抱歉说,但我认为这应该是发送验证消息的phpMyAdmin。同样默认情况下,它应该正确地发布验证消息,所以为了您未来的发展,最好是重新安装phpMyAdmin。 –

+0

错误,我正在阅读它的代码,它来自'show warnings',但我无法在命令行MySQL中重现它。 –

相关问题