使用 PDO 将数组多个输入中的多个 HTML 数据插入到数据库

Insert multiple HTML data from array multiple input to db using PDO

我有多个 FAQ 字段(问题和答案),必须将它们插入到 MySQL 数据库中。我正在使用 PDO。

HTML:

<input type="text" name="qns[]/>
   <textarea name="ans[]"></textarea><br>

PHP

    $qns=$_POST['qns'];
    $ans=$_POST['ans'];
    date_default_timezone_set('Asia/Kathmandu');
    $created= date('m/d/Y h:i:s a', time());

    foreach ($qns as $q){
        foreach ($ans as $a){
                $stmt=$pdo->prepare("INSERT INTO tbl_faq 
                            (faq_qn, faq_ans, faq_creator, faq_created, faq_updated)
                            VALUES
                            (?,?,?,?,?)");
                $stmt->bindValue(1, $q);
                $stmt->bindValue(2, $a);
                $stmt->bindValue(3, $_SESSION['id']);
                $stmt->bindValue(4, $created);
                $stmt->bindValue(5, $created);
                $stmt->execute();
        }
  }
  header("location:dashboard.php?page=faq/view.php");

当我将它插入数据库时​​,它产生了笛卡尔积。我知道循环中发生了一些事情。但不确定如何修复它..

只使用一个循环,并在$ans[]

中传递问题循环的索引
foreach ($qns as $key => $q)
{
    $stmt = $pdo->prepare("INSERT INTO tbl_faq 
                (faq_qn, faq_ans, faq_creator, faq_created, faq_updated)
                VALUES
                (?,?,?,?,?)");

    $stmt->bindValue(1, $q);
    $stmt->bindValue(2, $ans[$key]);
    $stmt->bindValue(3, $_SESSION['id']);
    $stmt->bindValue(4, $created);
    $stmt->bindValue(5, $created);
    $stmt->execute();
}