gpt4 book ai didi

php - PDO 在 For 循环中插入查询问题

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

我是 PDO 新手,我遇到了下面这个问题。基本上,我无法找出我的代码到底出了什么问题:我的 foreach 循环内的插入查询没有在我的数据库中插入任何内容。也许我没有以正确的方式编码。我需要我的客户回答一个动态表单,其中所有字段都使用 mysql 显示,我认为使用 foreach 循环会更方便。不管怎样,事实证明这比我想象的要困难得多。这是我的代码...(注释和变量都用葡萄牙语标记,如果您很难理解,请让我翻译它们)

编辑 #1 - 根据你们的建议做了一些更改...仍然不起作用。

<?php
if (isset($_POST["nome"])):
try{
// Começo da validação
$pdo->beginTransaction();
// Validação do campo nome
if ($_POST["nome"] != null):
$procurarnome=$pdo->prepare("SELECT id FROM users WHERE username=:username");
$procurarnome->bindValue(":username",$name);
$procurarnome->execute();
else:
die("Houve um erro no sistema, contate um administrador!");
endif;
// Validação dos campos dinâmicos
foreach ($listarpergunta as $pergunta) {
if ($_POST["pergunta$pergunta->id"] != null):
$resposta=addslashes($_POST["pergunta$pergunta->id"]);
$cadastraresposta=$pdo->prepare("INSERT INTO form_respostas(perguntaid,username,reposta)VALUES(:perguntaid,:username,:resposta)");
$cadastraresposta->bindValue(":perguntaid",$pergunta->id,PDO::PARAM_INT);
$cadastraresposta->bindValue(":username",$name);
$cadastraresposta->bindValue(":resposta",$resposta);
$cadastraresposta->execute();
echo $resposta;
echo "<br />";
else:
$pdo->rollBack();
die("Preencha todos os campos corretamente!<br />");
endif;
}
// Todos os arquivos foram preenchidos corretamente
$pdo->commit();
echo "Obrigado!";
}
catch(PDOException $pe){
//$pdo->rollback();
die($pe->getMessage());
}
else:
?>

当我单击提交表单时,我收到“Obrigado”消息,但数据库没有任何反应。如果我将任何字段留空,它会显示“Preencha todos os Campos”(所有字段都需要填写),所以我想代码的该特定部分没有问题......

最佳答案

这是您的代码中的一些问题:

您的$listarpergunta变量在哪里初始化?

并更改您的查询:
INSERT INTO form_respostas(perguntaid,用户名,reposta)VALUES(:perguntaid,:用户名,:resposta)

至:

INSERT INTO form_respostas(perguntaid,username,reposta) VALUES (:perguntaid,:username,:resposta)

(添加空格)

关于php - PDO 在 For 循环中插入查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231328/

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