如何在 MySql 数据库中将复选框值存储为 yes - PHP

因此,当用户创建一个帐户时,他们必须勾选复选框才能继续,但我如何存储他们接受了它(即使他们无法在不接受它的情况下创建帐户)。但是我们仍然想存储它。


复选框


<input type="checkbox" name="agree" value="accepted">

PHP


if ($_POST['agree'] != 'accepted') {

             $error[] = 'Please indicate that you have read and agree to the Terms and Conditions and Privacy Policy';

    } else {

            $stmt = $db->prepare('SELECT termsAccepted FROM members WHERE termsAccepted = :??????');

    $stmt->execute(array(':??????' => $?????));

    $row = $stmt->fetch(PDO::FETCH_ASSOC);


    }


慕的地8271018
浏览 137回答 2
2回答

HUX布斯

如果未选中该复选框,则变量agree中不会有任何索引$_POST,因此请事先检查它是否存在以防止在日志中抛出警告。之后,您可以使用 UPDATE 查询来修改members表中的termsAccepted列。伪代码:if (isset($_POST['agree']) && $_POST['agree'] == 'accepted') {&nbsp; &nbsp; $stmt = $db->prepare('UPDATE members SET termsAccepted=1 WHERE id = :user_id');&nbsp; &nbsp; $stmt->execute(array(':user_id' => $user_id));}提示:如果您仅存储trueor false,则可以对列termsAccepted使用数据类型 TINYINT(1) 或 BOOLEAN ,因为它仅存储两种状态。

牛魔王的故事

您可以在“其他”查询中进行 if 查询if ($_POST['agree'] == 'accepted') {&nbsp;$checkbox = "true";} else {&nbsp;$checkbox = "false";}而且你可以将 $checkbox 添加到你的执行数组中,但你应该修改准备好的语句。
打开App,查看更多内容
随时随地看视频慕课网APP