【发布时间】:2015-04-21 12:04:35
【问题描述】:
我有一个复选框列表,我想将每个选中的项目插入数据库。因为它是一个复选框,所以我只有一个值要传递给数据库,但我还传递了一个从以前的数据库插入中抓取的变量(主键)。
我的问题是我无法将其发布到数据库。我通过这里的帖子尝试了多种方法来做到这一点,但似乎没有任何效果。我很茫然。我对 PHP 和 mysqli 也很陌生,所以我确信有更好的方法来做我想做的事情,所以请帮助我。
该表由三列(school_id、graduate_id、schoolName)组成。 school_id 是 AI 主键,graduate_id 将使用从上一个查询中获取的变量 $graduateID 填充。 这是我所拥有的:
if (isset($_POST['school'])) {
$school=$_POST['school'];
$schoolQuery="";
foreach($school as $value) {
if(!$schoolQuery) {
$schoolQuery="INSERT INTO schoolReunion (graduate_id, schoolName) VALUES ($graduateID, '$value')";
} else {
$schoolQuery .= ", ($graduateID, '$value')";
mysqli_store_result($schoolQuery);
}
}
$schoolQuery .=";";
if (mysqli_multi_query ($schoolQuery)) {
echo "Files have been updated successfully.";
} else {
echo "Error: " . $schoolQuery . "<br/>" . mysqli_error($dbc);
}
}
当错误代码打印出来时,它看起来很好,但它不会发布任何内容并且不会给我任何错误。你能帮助我吗?
【问题讨论】:
-
你的前端表单是什么样的?
-
请注意,您只构建了 1 个插入多个数据集的查询,因此您不需要
mysqli_multi_query。你有一个sql注入问题。您还应该摆脱mysqli_store_result声明。 -
在 if 语句中,您设置了插入的开始部分 (INSERT INTO...),但在 else 语句中,您没有要执行的真正查询。逻辑是,你需要执行“this”查询,或者“that”查询
-
@MrTechie 不,在
else语句中,一个新集合被添加到现有字符串中。 -
请提供您的 html 复选框代码 sn-p...
标签: php database checkbox mysqli