Php 复选框始终将0发送到数据库

Php 复选框始终将0发送到数据库,php,forms,Php,Forms,如果复选框值为“是”,我将尝试将复选框值发送到我的数据库,如果未选中,则尝试将复选框值发送到数据库“否” 我试试这个 <input type="checkbox" name="hidesCompany" id="hidesCompany" class="checkBoxStyle" value="Yes"> 但这里的问题是,它总是以“0”的形式进入数据库,而不是“是”或“否”您应该试试这个 $hidesCompany = ''; if(isset($_POST['hidesComp

如果复选框值为“是”,我将尝试将复选框值发送到我的数据库,如果未选中,则尝试将复选框值发送到数据库“否”

我试试这个

<input type="checkbox" name="hidesCompany" id="hidesCompany" class="checkBoxStyle" value="Yes">

但这里的问题是,它总是以“0”的形式进入数据库,而不是“是”或“否”

您应该试试这个

$hidesCompany = '';
if(isset($_POST['hidesCompany']) && !empty($_POST['hidesCompany'])) 
{
    $hidesCompany = $_POST['hidesCompany'];

}
else
{
    $hidesCompany='No';
}

听起来像是数据库表中的
hidesCompany
列具有某种
INT
类型,而不是
TEXT
VARCHAR
等。

它在数据库中是什么类型的列?可能值得添加您用作标记的数据库引擎。您还应该使用相同名称的隐藏输入(在复选框标记之前),以便在未选中时,仍然通过表单提交值,那么你就不必担心php脚本中的
(如果
)了。谢谢@martincarlin87是的,这是我的错,我忘记了数据库类型,它是“int”,因为我没有添加相同名称的隐藏输入(在复选框标记之前),但它工作正常。这样做有问题吗,这两种方法都没有问题,只是归结到个人偏好,我会添加一个答案供将来参考。你需要检查你的复选框是否选中
$hidesCompany = '';
if(isset($_POST['hidesCompany']) && !empty($_POST['hidesCompany'])) 
{
    $hidesCompany = $_POST['hidesCompany'];

}
else
{
    $hidesCompany='No';
}