2011-10-11 126 views
0

我正在搞亂PHP和測試MYSQL數據庫。我創建了一個名爲「名稱」的表,其中列firstnamelastname;都設置爲NOT NULL。但是,我創建了一個PHP表單來輸入名和姓,然後通過$_POST方法將數據發送到相應的表字段。如果我沒有輸入兩個字段的信息,那麼數據庫仍接受輸入,並在每個字段中創建沒有數據的行。PHP將數據傳遞給MYSQL數據庫NOT NULL規則

爲什麼要將NOT NULL分配給列,如果我不得不在PHP表單中爲空條目添加檢查?

+1

您正在使用_empty_字符串混淆NULL。請閱讀[http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html](http://dev.mysql.com/doc/refman/5.0/en/working- with-null.html) – Xint0

+0

謝謝你的參考xint0 – Mechaflash

+0

我不知道有一個NULL值和一個空值之間的不同。我一直認爲他們是一個相同的人。 – Mechaflash

回答

1

在這種情況下,您的數據庫正在存儲空字符串,而不是「null」值。就數據庫而言,空字符串和「null」是非常不同的值。如果你想要求一個非空值,你應該爲你的表添加額外的約束。此外,值得檢查PHP代碼中的約束(或處理所產生的錯誤),以便用戶獲得有用的消息並提交適當的信息。數據庫中的約束只是確保沒有通過約束的數據沒有進入的最後努力。

1

聽起來像數據庫中的值實際上不是NULL,可能它們是空白的?