【问题标题】:Checkbox boolean doesn't seem to submit to database复选框布尔值似乎没有提交到数据库
【发布时间】:2019-12-04 08:27:09
【问题描述】:

我有一个带有复选框的注册表单,指示用户是否应该拥有 admin_rights,但问题是这不会进入数据库。 如果我检查标题,它确实会使用&admin_rights=on,我以多种方式声明了这个值,例如$rights = mysqli_real_escape_string($link, $_REQUEST['admin_rights']);$param_admin = trim($_POST["admin_rights"]);,但这些似乎都不起作用。

将其输入数据库的代码是

   $sql = "INSERT INTO users (username, password, admin_rights) VALUES (?, ?, '$param_admin')";

        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password);

            // Set parameters
            $param_username = $username;
            $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash

            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Redirect to login page
                header("location: login.php");
            } else{
                echo "Something went wrong. Please try again later.";
            }
 <div class="form-group">
                 <input type="checkbox" name="admin_rights" class="form-control checkbox" id="admin_rights"> 
                 <label>Admin rights?</label>


            </div>

其他数据,例如密码和用户名,确实会出现问题,所以我很确定问题出在布尔复选框中。

我不确定如何解决这个问题,以便 admin_rights 在检查时确实保存为布尔值。

【问题讨论】:

  • 复选框选中将返回“on”,因此您可以在 php 代码中检查它,例如:'checkbox == "on"? true : false' 或者您可以将值直接设置到您的 html 中,请检查:stackoverflow.com/questions/6441654/…
  • “但这些似乎都不起作用” - 这意味着什么,究竟?您是否会看到自己的自定义“出现问题”错误消息?在这种情况下,请继续阅读如何正确调试通过 PHP 执行的 MySQLi 查询。
  • (为什么在准备好的语句与占位符和插入直接到查询中的值之间出现这种丑陋的混合?)
  • @leobrl 这似乎有效,谢谢!
  • 您在滥用准备好的语句。停止使用mysqli_real_escape_string 并绑定所有参数。

标签: php mysql database forms boolean


【解决方案1】:

设置值="1" 因此,如果用户选中此框,则 value=1 将保存到数据库中,并在数据库中将 admin_rights 字段中的默认值设置为 0。 使用 1 个值字段,您可以做任何您想做的事情。

【讨论】:

  • 您能否添加更多详细信息并格式化您的答案?
  • 如果用户选中此复选框,则此复选框的默认值为 1框然后在数据库 1 值保存在 db 字段中,否则 0 保存在数据库字段中,您必须在数据库字段中设置默认值 0..
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 2015-04-13
  • 2013-06-07
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多