gpt4 book ai didi

php - 动态添加的表单字段 - pdo php mysql

转载 作者:行者123 更新时间:2023-11-29 05:54:54 25 4
gpt4 key购买 nike

我用 jquery 制作了一个动态添加的表单字段并且工作完美但无法发布数据库。我使用 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]

));


}
}

}

最佳答案

如果您有多个具有这样名称属性的表单控件(无论它们是否动态添加):

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

这不会在您的 PHP 代码中转换为 $_POST['skill[]']。它只是 $_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
]);
}
}

关于php - 动态添加的表单字段 - pdo php mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360092/

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