首页 / PHP / 使用PHP PDO更新复选框的数据库值
使用PHP PDO更新复选框的数据库值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP PDO更新复选框的数据库值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2530字,纯文字阅读大概需要4分钟。
内容图文
![使用PHP PDO更新复选框的数据库值](/upload/InfoBanner/zyjiaocheng/893/39d78f03d06647fc990e7c1a538a4471.jpg)
我试图用用户单击保存时的复选框值更新我的数据库.
这是我的代码:
require("config.php");
$settingsArray = array('my_music', 'my_movies', 'my_weather', 'my_maps', 'my_news');
if(isset($_POST['btn_save']))
{
if(isset( $_POST['mysettings']))
{ $values = array();
foreach($_POST['mysettings'] as $selection )
{ if(in_array($selection, $settingsArray))
{ $values[ $selection ] = 1; }
else
{ $values[ $selection ] = 0; }
} // end of foreach.
try // save user selection to the database
{
$user_id = $_SESSION['user']['id'];
$stmt = $db->prepare("UPDATE user_preferences SET my_music = :mymusic, my_movies = :mymovies, my_weather = :myweather, my_maps = :mymaps, my_news = :mynews WHERE user_id = :userID");
$stmt->bindParam(":userID", $userid, PDO::PARAM_INT);
$stmt->bindParam(':mymusic', $values['mymusic']);
$stmt->bindParam(':mymovies', $values['mymovies']);
$stmt->bindParam(':myweather', $values['myweather']);
$stmt->bindParam(':mymaps', $values['mymaps']);
$stmt->bindParam(':mynews', $values['mynews']);
$stmt->execute();
} catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
}
else
{ echo 'No checkbox selection made...'; }
} // End of, if statement from the button check
这是我的HTML:
<form action="admin.php" method="post" role="form">
<input type="checkbox" name="mysettings[]" value="mymusic" <? echo $musicChecked;?> />
<input type="checkbox" name="mysettings[]" value="mymovies" <? echo $movieschecked;?> />
<input type="checkbox" name="mysettings[]" value="myweather" <? echo $weatherChecked;?> />
<input type="checkbox" name="mysettings[]" value="mymaps" <? echo $mapsChecked;?> />
<input type="checkbox" name="mysettings[]" value="mynews" <? echo $newsChecked;?> />
<input type="submit" name="btn-save" class="btn btn-md btn-primary btn-block" data-loading-text="Loading..." value="Save" />
</form>
我没有收到任何错误,所以我不知道出了什么问题.当我点击保存时,数据库中没有任何更新.
解决方法:
你的提交按钮是(带连字符)
<input type="submit" name="btn-save"...
但是你的条件语句是(带有下划线)并且基于代码的执行:
if(isset($_POST['btn_save'])){...}
改为
<input type="submit" name="btn_save"...
如果你还没有使用它:
添加$db-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);在连接打开后立即.它将发出代码中发现的任何错误信号.
此外,并插入您的开头<?php标签下方:
error_reporting(E_ALL);
ini_set('display_errors', 1);
另外,确保session_start();确实已加载,因为您正在使用会话变量; $user_id = $_SESSION [‘user’] [‘id’];你的WHERE子句依赖它 – 只是一个洞察力.
另一件事是确保,如果是这种情况,user_id列不是AUTO_INCREMENT
内容总结
以上是互联网集市为您收集整理的使用PHP PDO更新复选框的数据库值全部内容,希望文章能够帮你解决使用PHP PDO更新复选框的数据库值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。