php - 将复选框值更新到数据库
问题描述
我想用 1 或 0 更新我的数据库条目,这取决于它是否被选中。
我当前的代码看起来像这样(只有一个复选框,其他的只是其他名称):
<form method="post" action="" name="form">
<label class="switch"><input type="checkbox" name="csgo" value="1"><span class="slider"></span></label> CSGO;
<input type="submit" value="Save" class="btn btn-primary" name="submit">
<?php
$csgoac = isset($_POST["csgo"]) ? $_POST["csgo"] : 0;
$sql = "UPDATE Users SET csgoactive='".$csgoac."' WHERE ID='1'";
mysqli_query($db, $sql);
?>
</form>
我用echo $csgoac;
(在查询之前)对其进行了测试,输出是checked = 1
而不是checked = 0
。
现在使用查询,它只是将“0”更新到数据库,我在那里做错了什么?
解决方案
当然,页面第一次渲染,$csgoac
是0,因为isset($_POST["csgo"])
是假的。
如果选中该复选框,然后提交表单,则为$csgoac
1。
所以问题变成了: 的结果是mysqli_query($db, $sql);
什么?
您是否正在获取/检查所有可用的反馈?如果display_errors
php.ini 中为 Off,则浏览器中不会有反馈,但可能是 php errorlog 中有错误。(例如,在代码段中,$db
未定义,因此mysqli_query($db, $sql);
以 . 失败Undefined variable: db
。)。
如果 UPDATE 不成功,mysqli_query($db, $sql);
将返回FALSE
并$db->error
告诉您遇到了什么错误。
您还可以使用mysqli_stmt_affected_rows
其他反馈。
也许添加一些反馈/错误检查以获取尽可能多的信息,以便您了解实际发生的情况。
推荐阅读
- python - psycopg2:TypeError:字符串格式化期间并非所有参数都转换了
- teamcity - Specflow 生成所有详细信息
- java - 删除元素时 PriorityQueue 更改顺序
- javascript - 如果在其中满足条件,则停止 node-cron cron.schedule
- c# - 什么是 ssas 分区“注释”属性
- java - 没有错误,但应用程序一直在 android studio Java 中停止
- ruby-on-rails - CanCan 能力忽略一个应该禁止访问的条件?
- java - 发送带有附件的电子邮件,从内容 bytea postgresql 获取数据
- matlab - 将 bpmn 文件中的数据导入一个字符串/字符值 Matlab
- kubernetes - Prometheus helm chart 自定义配置