【问题标题】:How to store check box value ckecked as 1 and unchecked as 0 in mysql [duplicate]如何在mysql中存储勾选为1和未勾选为0的复选框值[重复]
【发布时间】:2017-02-07 09:24:16
【问题描述】:

如何在 mysql 中存储勾选为 1 且未勾选为 0 的复选框值 我的表格是这样的:

 <input type="checkbox" name="skill['+skillcount+'][gdskill]">
 <input type="checkbox" name="skill['+skillcount+'][piskill]">

还有我的控制器页面:

foreach($_POST["skill"] as $k=>$key)
{
$conn->query("INSERT INTO r_job_skill
(id_job,title,weightage,type,gdskill,piskill) values
 ('".$jobId."',
  '".$key["title"]."',
  '".$key["weightage"]."',
  '".$key["type"]."',
  '".$key["gdskill"]."',
  '".$key["piskill"]."')
 ");
}

【问题讨论】:

  • 我为您提供了如何根据检查状态将其存储到数据库中的选项。
  • 现在检查我已经更新了答案,现在你的错误不会发生:)
  • 注意:完全易受 SQL 注入攻击。请改用准备好的语句。

标签: php jquery mysql mysqli


【解决方案1】:

您可以在插入Mysql DB时检查。

isset() — 确定变量是否已设置且不为 NULL

如果一个变量已经用 unset() 取消设置,它将不再被设置。如果测试已设置为 NULL 的变量,isset() 将返回 FALSE。另请注意,空字符(“\0”)不等同于 PHP NULL 常量。

如果提供了多个参数,则仅当设置了所有参数时 isset() 才会返回 TRUE。评估从左到右进行,并在遇到未设置的变量时立即停止。

if(isset($_POST['skill'])) { // where skill is the check box name
   // Here it executes for not checked
   $cval = '0';
} else {
   // Here it executes for checked
   $cval = '1';
}

之后,您可以将$cval 插入到查询中以用于执行目的。

另一种方法:

if(!isset($_POST['skill'])) { // where skill is the check box name
   $cval = '1';  
} else {
   $cval = '0';
}

【讨论】:

  • 请修正你的代码:isset($_POST['skill']=='') » isset($_POST['skill']) // 你想检查键是否在数组中而不是比较
  • @Naresh 致命错误:无法对表达式的结果使用 isset()(您可以改用“null !== expression”)
  • @CodeBrauer。我现在根据 cmets 更改了代码
  • @AbdulWaheed。现在检查我已经更新了答案.. :)
  • $cval = filter_input(INPUT_POST, 'skill', FILTER_NULL_ON_FAILURE);$cval = isset($_POST['skill']); 更短(我不喜欢第二个,因为它直接访问$_POST
猜你喜欢
  • 2013-09-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 2017-07-27
  • 2023-03-19
  • 1970-01-01
  • 2016-05-04
相关资源
最近更新 更多