动态添加表单字段-pdo php msql

9rnv2umw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(334)

我用jquery创建了一个dynamicali添加的表单字段,可以完美地工作,但不能创建db post。我使用pdo-php。它什么也没贴,但我不知道为什么。请帮助我,但只与pdo和准备的声明,没有mysqli!谢谢您!

$number = $_POST['skill[]'];
if($number > 1)
{
    for($i=0; $i<$number; $i++)
    {
        if(trim($_POST['skill[$i]'] != ''))
        {
            $pdoQuery = "INSERT INTO skills (username, skillname) values (:username, :skill)";

            $pdoResult = $pdo->prepare($pdoQuery);

            $pdoExec = $pdoResult->execute(array(

                ":username" => $username,
                ":skill" => $number[$i]

            ));

        }
    }

}
cwxwcias

cwxwcias1#

如果您有多个具有如下名称属性的窗体控件(无论是否动态添加):

<input type="text" name="skill[]">

这不等于 $_POST['skill[]'] 在php代码中。就这样 $_POST['skill'] ,它将包含一个数组,其中包含在输入中输入的具有这些名称的所有值。
假设这就是你所拥有的:
首先,在循环之前准备语句。为每次执行重新准备相同的语句将失去使用准备好的语句的性能优势。

$pdoQuery = "INSERT INTO skills (username, skillname) values (:username, :skill)";
$pdoResult = $pdo->prepare($pdoQuery);

然后,迭代 $_POST['skill'] . 如果里面什么都没有,循环的内容就永远不会运行。

foreach ($_POST['skill'] as $skill) {
    if (trim($skill)) {  // you don't have to explicitly check for '', because '' == false
        $pdoExec = $pdoResult->execute([
            ":username" => $username,
            ":skill" => $skill
        ]);
    }
}

相关问题