如何将多个变量数组添加到数据库

How to add multiple variable array to database

我想将我的数据插入数据库,我有两个具有数组数据的变量。

例如 $_POST['link']<= 数组数据,$_POST['nama_link']<= 数组数据并且 $id_baru<= 不是数组。

这是我能做的

$prep = array();
    foreach($_POST['link'] as $v ) {
        $prep[] = "($id_baru, $v)";
    }

    $add_link = $db->prepare("INSERT INTO link_relation (`id_e_lr`,`link_lr`) VALUES " . implode(', ', $prep));
    $add_link = $add_link->execute($prep);

上面的代码只添加了 $_POST['link']$id_baru 我必须做的才能在上面插入 $_POST['nama_link']

我的table

id_e_lr   link_lr           nama_link_lr
========  =========        ==============
$id_baru  `$_POST['link']  $_POST['nama_link']
$id_baru  `$_POST['link']  $_POST['nama_link']
$id_baru  `$_POST['link']  $_POST['nama_link']
$id_baru  `$_POST['link']  $_POST['nama_link']

如果使用准备语句,则不能直接将数组绑定到数据库列。

你必须这样做:

$stmt->bind_param("sss", $var1, $var2, $var3);
foreach ($_POST['link'] as $i) {
    $var1 = $i['key1'];
    $var2 = $i['key2'];
    $var3 = $i['key3'];
    $stmt->execute();
}

其中 keyN 是您在 $_POST 中的索引。

使用第一次数组迭代的键从 $_POST['nama_link'] 中获取值并将其添加到插入值中。

也尝试正确使用prepared statement概念。

按如下操作:-

$stmt = $db->prepare("INSERT INTO link_relation (`id_e_lr`,`link_lr`,`nama_link_lr`) VALUES (:id_baru, :v, :link)");

foreach ($_POST['link'] as $key=>$v){
    if(isset($_POST['nama_link'][$key])){
        $link = $_POST['nama_link'][$key];
    }
    $stmt->execute(array(
        ':id_baru' => $id_baru,
        ':v' => $v,
        ':link' => $link,
    ));
}