gpt4 book ai didi

php - 如何使用 Mysql 和 PHP 插入具有相同名称的多行

转载 作者:行者123 更新时间:2023-11-29 16:51:36 27 4
gpt4 key购买 nike

我有一个名为 dbcenter 的数据库,并且有类(class)表。我有表格可以同时插入多个类(class)名称。但是当我提交时只插入一个空行。这是我的输入表格:

    <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[] 中删除 [],它会插入数据,但仅插入最后一个文本框。任何人都可以帮助我吗?

最佳答案

过滤输入时出现错误。

execute() 应该位于 foreach 循环内。

也永远不要信任用户输入,使用参数化查询或使用 mysqli::real_escape_string() 进行转义,以便正确转义用户输入:

   if(isset(filter_input_array(INPUT_POST)['submit'])){

$names = filter_input_array(INPUT_POST)['listName'];

if(is_array($names)){
$insertCourse = $con->prepare("INSERT INTO `courses`(`course_Name`)
VALUES (?)");
$insertCourse->bind_param("s", $item);
foreach ($names AS $key => $item){

$res = $insertCourse->execute();
if($res){
echo 'added<br>';
}
}
$insertCourse->close();
}
else {
echo 'not array';
}
}

关于php - 如何使用 Mysql 和 PHP 插入具有相同名称的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52788850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com