php - 向MYSQL数据库中插入多条数据

标签 php html mysql

我在将多个数据插入 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/

相关文章:

php - 使用 sed 删除第一行代码中 <?php ?> 之间的所有内容(包括 <?php ?>)

javascript - 具有跨浏览器兼容性的固定表头

mysql View 查询非常慢

mysql - 有没有办法将 RC Selenium 测试错误/失败记录到数据库中?

PHP MySQL 查询多个值,然后与 HTML 输入进行比较,然后根据每个结果进行回显

php - 嵌套三级引用

php - 如何在 php 中创建时间列表?

php - 自定义密码编码器 symfony 5

jQuery 日期排序 li div 浏览器问题

python - 使用 Beautiful Soup 获取 'name' 属性