2011-06-07 55 views
0

我目前使用CodeIgniters活動記錄類來更新MySQL表。其中一列是我設置爲NULL並將NULL字段設置爲TRUE的INT的默認值。當我插入一條記錄並將該特定字段留空時,沒問題,它被設置爲NULL。然而,當我用表單中的空白字段執行UPDATE時,MySQL將該值設置爲0.是否有辦法讓MySQL以與INSERT完成相同的方式來解釋UPDATE,即如果表單值爲空,則將其設置爲NULL而不是0?MySQL:更新Vs插入INT列

乾杯

回答

0

最有可能的空字符串''被髮送到數據庫,因此它被轉換爲INT字段爲0 - 檢查確切的SQL查詢(例如通過啓用分析器: $ this-> output-> enable_profiler(TRUE)在您的控制器中)。如果是這種情況,請在您的模型中添加一段代碼,以便在更新時替換NULL。

0

你有沒有在數據庫上運行跟蹤,看看到底是什麼SQL CodeIgniters正在發送的數據庫?這聽起來像CodeIgniters可能發送零到MySQL ...

+0

不,我使用Firebug檢查了POST值。不發送任何信息 – RolandFlyBoy 2011-06-07 18:24:15

+0

Firebug只能看到瀏覽器在做什麼。在Firebug範圍之外的服務器上的Codeigniter。 – 2011-06-07 18:27:25

+0

錯誤,錯誤地閱讀了這個問題 – RolandFlyBoy 2011-06-07 18:30:40