我有一个名为dbcenter的数据库和courses表。我必须同时插入多个课程名称。但当我提交时,只插入一个空行。这是我的输入表:
<form action="COURSE.php" method="POST" enctype='multipart/form-data'>
<input type="text" name="listName[]" value="course 1">
<input type="text" name="listName[]" value="course 2">
<input type="text" name="listName[]" value="course 3">
<input type="submit" name="submit" value="insert">
</form>
以及我的php代码:
if(isset(filter_input_array(INPUT_POST)['submit'])){
$names[] = filter_input(INPUT_POST,'listName');
if(is_array($names)){
foreach ($names AS $key => $item){
$insertCourse = $con->prepare("INSERT INTO `courses`(`course_Name`)
VALUES ('$item')");
}
$insertCourse->execute();
if($insertCourse){
echo 'added';
}
}
else {
echo 'not array';
}
}
我试图从输入名称listname[]中删除[],它只插入最后一个文本框中的数据。有人能帮我吗?
1条答案
按热度按时间bnlyeluc1#
筛选输入时出错。
execute()
应该在foreach循环中。也不要相信用户输入,使用参数化查询或转义
mysqli::real_escape_string()
,以便正确转义用户输入: