我想将我的数据插入数据库,我有两个具有数组数据的变量。
例如$_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']
。
我的桌子
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']
答案 0 :(得分:1)
使用第一次数组迭代的键从$_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,
));
}
答案 1 :(得分:0)
如果使用预处理语句,则不能直接将数组绑定到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是您在$ _POST中的索引。