我在将多个数据插入 MYSQL 数据库时遇到问题。使用下面的代码,我只能插入我输入的数据。假设有 3 个问题,我必须提交 3 个输入,它只提交了最后一个。
<?php
include('questionDB.php');
if(isset($_POST['submit'])){
$questionID = $_POST['id'];
$answer = mysql_real_escape_string(htmlspecialchars($_POST['answer']));
$insert = mysql_query("INSERT INTO answers(survey_id, question_id, answer_body) VALUES ('1','" . $questionID . "', '" . $answer . "')");
if ($insert){
echo "Success";
} else {
echo "Failed";
}
}
$startTimeAuc = mysql_query("SELECT startTime FROM questions WHERE survey_id='1'");
$startTime = mysql_fetch_assoc($startTimeAuc);
$startTime = ($startTime['startTime']);
$endTimeAuc = mysql_query("SELECT endTime FROM questions WHERE survey_id='1'");
$endTime = mysql_fetch_assoc($endTimeAuc);
$endTime = ($endTime['endTime']);
$currentTimeAuc =(date("Y-m-d H:i:s"));
if( ( $currentTimeAuc >= $startTime && $currentTimeAuc <= $endTime)){
?>
<form name="auctionQuestion" method="post">
<?php
$auctionSurvey = "SELECT question_id, survey_id, question_body FROM questions
WHERE survey_id='1'";
$aucResult = mysql_query($auctionSurvey) or die (mysql_error());
while($auctionRow = mysql_fetch_assoc($aucResult)){
echo "<p class=\"questions\">". $auctionRow['question_body']."</p>". "<input type=\"text\" name=\"answer\" class=\"answerField\"><BR>";
?>
<input type="hidden" name="id" value="<?php echo $auctionRow ['question_id'] ?>">
<?php
}
?>
<input type="submit" class="submit" name="submit" value="Submit">
</form>
</div>
<?php
}
?>
最佳答案
几点: 1.您的代码容易受到sql注入(inject),请使用准备好的数据或SQLI/PDO 2. 您的所有问题和答案都具有相同的名称,这就是为什么您只插入一个。尝试给它们不同的名称(使用 -1/-2/-3 后缀等),或者如果我这样做,我将在数据库中的同一条记录中拥有 3 个问题和 3 个答案,而不是插入 3 次。 3. 参见下面部分。您需要向answer 和id 添加变量。否则他们会得到相同的名字。
<input type=\"text\" name=\"answer\" class=\"answerField\">
<input type="hidden" name="id" value="<?php echo $auctionRow ['question_id'] ?>">
关于php - 向MYSQL数据库中插入多条数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20662638/