2011-07-14 57 views
2

在我在,儘管在客戶端和服務器端都嚴格驗證的應用,某種程度上這是發生記錄會從用戶註冊頁面空白。所有數據都爲空,接受我表格中的默認值(例如性別 - 男性)。這發生在約100個登記中。空白記錄問題 - Mysql的

MySQL的 - 我有一個不空的結構爲每個必填字段。它仍然插入空白。

CakePHP的一面 - 我檢查數據數組保存之前不是空白。

我會很感激,如果有人幫助我。

在此先感謝。

+0

你可以發佈你的驗證規則嗎? – dhofstet

回答

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