MySQL:UPDATE Vs INSERT为INT列

时间:2011-06-07 18:13:06

标签: mysql codeigniter integer

我目前正在使用CodeIgniters活动记录类来更新MySQL表。其中一列是INT,其默认值我已设置为NULL并将NULL字段设置为TRUE。当我插入记录并将该特定字段留空时,没有问题,它被设置为NULL。但是,当我在表单中使用字段空白进行UPDATE时,MySQL将值设置为0.有没有办法让MySQL以与INSERT完成相同的方式进行UPDATE,即如果表单值为空,则将其设置为NULL而不是0?

干杯

2 个答案:

答案 0 :(得分:0)

您是否在数据库上运行跟踪以确切了解SQL CodeIgniter正在发送数据库的内容?听起来CodeIgniter可能会向MySQL发送零...

答案 1 :(得分:0)

很可能空字符串''被发送到数据库,因此它被转换为INT字段为0 - 检查确切的SQL查询(例如,通过启用分析器:$ this-> output-> enable_profiler(TRUE)在您的控制器)。如果是这种情况,请在模型中添加一个片段,在更新时将''替换为'。