在表单中,要插入数据库的多个Checkbox值:
我的代码:
Array: ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
$a = $_POST['id']; // data from form
$query = "INSERT INTO abc(`x`,`y`,`z`) VALUES " . implode (",","(NULL,$a,'1')");
mysqli_query($dbc,$query);
内爆功能似乎存在问题。你如何使用implode连接数组?
//预期输出
INSERT INTO abc(`x`,`y`,`z`) VALUES (NULL,1,'1'),(NULL,2,'1'),(NULL,3,'1'),(NULL,4,'1'),
表abc的y
列需要以$ a循环。
答案 0 :(得分:3)
如果要创建批量多次插入,首先先构建批次,然后内嵌这些批次:
$multiple = array_map(function($e) use($dbc) {
$e = $dbc->real_escape_string($e);
return "(NULL, $e, '1')";
}, $a);
$query = "INSERT INTO abc(`x`,`y`,`z`) VALUES " . implode (',', $multiple);
mysqli_query($dbc,$query);
旁注:不是VALUE
,而是VALUES
。并记住在标识符上使用正确的引号。它应该是反引号而不是单引号。
INSERT INTO abc('x','y','z') // NOT OK
INSERT INTO abc(`x`,`y`,`z`) // OK
答案 1 :(得分:0)
$a = array(1,2,3,4);
$string = '';
foreach($a as $v){
$string .= "(NULL, $v, 1),";
}
$string = substr($string,0,-1);
$query = "INSERT INTO abc('x','y','z') VALUES $string";
答案 2 :(得分:0)
这里你破坏了concate。
$query = "INSERT INTO abc('x','y','z') VALUE " . "('" . implode("','", $a) . "')";
答案 3 :(得分:0)
您在内幕implode()中使用了错误的参数并检查了您的插入查询,您必须使用values
代替value
$query = "INSERT INTO abc('x','y','z') VALUES (".implode(",",$a).")";
答案 4 :(得分:0)
根据您的评论,这应该是您的代码:
foreach($a as $item)
{
$str[] = "(NULL, '$item', 1)";
}
$query = "INSERT INTO abc(x,y,z) VALUES ".implode(',', $str);
所以,你犯了两个错误: