Php 尽管设置了defaultvalue,但数据库中没有显示任何值

Php 尽管设置了defaultvalue,但数据库中没有显示任何值,php,mysql,html,Php,Mysql,Html,特殊用餐要求: 素食主义者 无麸质的 这就是我决定使用我创建的表单的原因。我没有使用单选按钮,因为我只想要一个复选框;我没有给复选框起相同的名字,因为它们在数据库中是不同的列,因为用户可能需要素食和无麸质餐 然而,当我在mysql workbench中调出我的数据库时,未选中的框仍然显示在列中,没有任何值。然后我尝试放置一个隐藏的复选框,其值为no,它是默认选中的,等等。但是,这两个值在数据库中都显示为no 现在,我意识到php只关心一个复选框值,而不是一个未选中的框值——但我认为如果我的数据

特殊用餐要求:
素食主义者 无麸质的 这就是我决定使用我创建的表单的原因。我没有使用单选按钮,因为我只想要一个复选框;我没有给复选框起相同的名字,因为它们在数据库中是不同的列,因为用户可能需要素食和无麸质餐

然而,当我在mysql workbench中调出我的数据库时,未选中的框仍然显示在列中,没有任何值。然后我尝试放置一个隐藏的复选框,其值为no,它是默认选中的,等等。但是,这两个值在数据库中都显示为no

现在,我意识到php只关心一个复选框值,而不是一个未选中的框值——但我认为如果我的数据库中有一个默认值,它应该在那里,就像一个空值,不是吗

我真的不想为了一排排的食物偏好而有一张完全独立的桌子——我确信我遗漏了一些东西


我可以得到一些关于处理这个问题的最佳方法的建议吗?

如果您正在执行类似以下操作:
(isset($\u POST['dietarygut'))
但未设置,那么该值将为
NULL
,并上载到数据库。发布你的PHP脚本

你认为你的默认值是什么?对于HTML复选框,
value
属性并不意味着默认值,而是复选框将发送的值。如果未选中/未选中,则不会发送值“是”


正如mlishn在回答中所说,您需要通过编程检查是否设置了一个/两个框,如果设置了,则插入这些值。

默认值将仅用于新的插入。如果在插入行后添加默认值,则现有行不会受到影响。这可能是问题所在吗?另外,请注意,如果在字段列表中为插入指定字段,则该字段将在值列表中具有相应的值,并且将使用该值,即使该值为空(空字符串仍然是字符串)-您需要从查询中省略POST数据中缺少的字段,以便使用默认值,或者您可以传递
NULL
,只要数据库中的字段不允许NULL值。
 <p>Special Meal Request:<br />
      <label>
      <input type="checkbox" name="dietaryveg" value="yes" />Vegetarian
      </label>
      <label><input type="checkbox" name="dietaryglut" value="yes" />Gluten-Free
      </label>