如果未选中复选框,则会在提交表单后在db字段中生成空白值。
我可以在提交表单之前为空复选框指定一个值:
if (empty($checkbox1)){
$checkbox1='none';
}
等
在数据库或一堆字段中插入一堆空字段是否更好?" none" ? 在我看来,#34;没有"字段是多余的,会占用更多空间......
答案 0 :(得分:2)
我认为您应该为该复选框分配一个可以假设两个值的数据库字段:0和1.其中一个将等于“已检查”,另一个将等于“无”
答案 1 :(得分:2)
您可以使用以下方法:enum,bit(1)或tinyint(1),因为您正在使用类似布尔值的变量。
如果您正在考虑性能,则枚举和位之间的区别不是那么一点:http://techhelplist.com/index.php/tech-tutorials/42-databases/65-mysql-performance-bit-vs-tinyint-vs-enum
但是如果你正在考虑使用的存储空间,enum和tinyint都使用8byte的存储空间,而bit(1)只使用1bit。 mysql中的数据类型BOOLEAN是tinyint(1)的同义词,所以请注意使用该类型。
因此,最后你可以更好地使用bit(1)来存储复选框的结果,与之前给定的枚举解决方案相比。
有关为何不使用枚举的更多信息,请阅读http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/
答案 2 :(得分:1)
我这样做的方法是按如下方式定义DB字段:
Type: Enum
Length/Values: 'yes', 'no'
Default as defined: no
使用此方法,只需选中复选框(或更改状态)即可进行更新。
正如其他人所说,空间可以忽略不计。