使用 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();
}
我有多个 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();
}