如何在数据库中添加多变量数组

5w9g7ksd  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(341)

我想把我的数据插入数据库,我有两个变量有数组数据。
例如 $_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']
cld4siwp

cld4siwp1#

如果使用prepared语句,则不能直接将数组绑定到db列。
你必须这样做:

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

其中keyn是$\u post中的索引。

zpgglvta

zpgglvta2#

使用第一个数组迭代的键从 $_POST['nama_link'] 并将其添加到插入值中。
也尽量使用 prepared statement 正确的概念。
你喜欢吗below:-

$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,
    ));
}

相关问题