为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 复选框值到 MYSQL 无限循环问题

PHP 复选框值到 MYSQL 无限循环问题

PHP
慕村225694 2023-09-15 17:02:48
我想使用复选框对我的网站上的个人资料进行设置。这些复选框也有效,但我不断收到此错误:Fatal error : Uncaught mysqli_sql_exception: Column 'match_role_id' cannot be null 这可能是因为应在其中输入值的表是一个临时表,其中包含来自其他两个表的两个 ID。如果我将这两个值的默认值设置为NULL,则会出现无限循环。我怎样才能解决这个问题?功能:function add_team_match_role() {    global $connection;    if(isset($_POST['add_match_roles'])) {        $match_role_checkbox = $_POST['match_role_check'];        $team_id = escape($_POST['team_id']);        for($i = 0; $i < $match_role_checkbox; $i++) {            $team_id = escape($_POST['team_id']);            $stmt = $connection->prepare("INSERT INTO game_role_team (match_role_id, team_id) VALUES (?, ?)");            $stmt->bind_param("ss", $match_role_checkbox[$i], $team_id);            $stmt->execute();            $stmt->close();        }    }}HTML:<div class="form-group">    <label for="match_role">Match Rollen</label>            <?php         $stmt = $connection->prepare("SELECT * FROM game_role");        $stmt->execute();        $result = $stmt->get_result();        while($row = $result->fetch_assoc()) {            $match_role_id = $row['match_role_id'];            $match_role_name = $row['match_role_name'];            echo "<div class='form-check'>                  <input class='form-check-input' type='checkbox' name='match_role_check[]' value='$match_role_id'>                  <label class='form-check-label'>$match_role_name</label>                  </div>";        }        $stmt->close();    ?></div>
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

当未设置复选框时,则为$_POST['add_match_roles'][$i]NULL。但不允许插入 NULL 或空字符串,因为该字段是整数。

通过验证“set and notempty”来检查角色是否被检查(因为该值为“on”)。如果为空,则在检查时给出零或一。

$isChecked = (int) !empty($_POST['add_match_roles'][$i]);

还将类型从字符串更正为整数

$stmt->bind_param("is", $isChecked, $team_id);

注意
如果您只需要一个布尔值(true=1,false=0),请使用 TinyInt(1) UNSIGNED。


查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信