cakephp中的空白记录问题 - Mysql

时间:2011-07-14 11:12:41

标签: php mysql cakephp

在我的应用程序中,尽管在客户端和服务器端都进行了严格的验证,但不知何故,从用户注册页面开始记录是空白的。所有数据均为空白,接受我表中的默认值(例如,性别 - 男性)。这种情况大约发生在100次登记中。

Mysql - 我的每个必填字段的结构都不是null。它仍然插入空白。

Cakephp方面 - 我保存之前检查数据数组是否为空。

如果有人帮助我,我将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

它是空白的,因为在每个数据库(Oracle除外)中,空字符串''不为空。因此数据库将接受这一点。

如果你想防止这种情况发生,你需要写一个这样的触发器:

DELIMITER $$

CREATE TRIGGER bi_table1_each BEFORE INSERT ON table1 FOR EACH ROW
BEGIN
  //this will cause an error and prevent the insertion of an empty gender field.
  //If gender has a default value, the database will insert the default value instead.
  IF new.gender = '' THEN SET new.gender = null;
END $$

DELIMITER ;

或者,您可以将性别设为枚举字段

ALTER table1 
CHANGE COLUMN gender gender ENUM ('M','F');

<强>链接:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
http://dev.mysql.com/doc/refman/5.5/en/triggers.html