首页 > 解决方案 > 使用 PHP 将数组数据存储到 mySQL 数据库

问题描述

我正在尝试将数组存储到 mySQL 表中。我的表有 6 列(问题,选择 1-4,正确)。我使用一个数组来保存从 HTML 表单输入的数据。我使用 for 循环来获取每个表单的每个数据。(每个表格是一个有 4 个选项和一个正确答案的问题)。我的PHP代码:

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "q-a";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// store question and answer
for ($i=0, $i < count($_POST['q1'], $i++){
    $question = $_POST['q1'][$i];
    $choice1 = $_POST['c1'][$i];
    $choice2 = $_POST['c2'][$i];
    $choice3 = $_POST['c3'][$i];
    $choice4 = $_POST['c4'][$i];
    $correct = $_POST['ca'][$i];    

    $store_question = "INSERT INTO quiz (question, choice1, choice2, choice3, choice4, correct) VALUES ('$question', '$choice1', '$choice2', '$choice3', '$choice4', '$correct')";
    $result_get_question = mysqli_query($conn, $store_question);
}  

    $conn->close();
    ?>

什么都没发生。有人可以发现我哪里错了。我们需要使用 serialize() 函数吗?

标签: phphtmlmysql

解决方案


错误 1) :你在你的count()函数中错过了 aforloop

错误 2:您在循环中使用了不正确的语法。你必须使用;而不是,

更新代码:

for ($i=0; $i < count($_POST['q1']); $i++){
    $question = $_POST['q1'][$i];
    $choice1 = $_POST['c1'][$i];
    $choice2 = $_POST['c2'][$i];
    $choice3 = $_POST['c3'][$i];
    $choice4 = $_POST['c4'][$i];
    $correct = $_POST['ca'][$i];    

    $store_question = "INSERT INTO quiz (question, choice1, choice2, choice3, choice4, correct) VALUES ('$question', '$choice1', '$choice2', '$choice3', '$choice4', '$correct')";
    $result_get_question = mysqli_query($conn, $store_question);
}  

推荐阅读