我想在insert的值中使用循环。
例如
$num = count($data);
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
$sql = "INSERT INTO $tbl_name VALUES ( '$data[$c]' )";
如果num为5,那么将创建列5.将插入1行,每列5列。
或 如果num是8,那么将创建列8.将插入1行,每列8列。
在 VALUES 中,我如何使用循环或
由于列号未修复。那么如何动态插入列数据将创建哪一行(1)。
请提出任何建议?
答案 0 :(得分:2)
试试这个
$sql = "INSERT INTO $tbl_name VALUES ( ";
for ($c=0; $c < $num; $c++) {
$sql .= "'" . $data[$c] . "',";
}
$sql = substr($sql,0,-1); // removes last comma
$sql .= ")";
答案 1 :(得分:0)
你想要这个:
foreach ($data as &$piece){
$piece = "('{$piece}')" ; //Or you can specify anything else
}
$values = implode(", ", $data) ;
$sql = "INSERT INTO $tbl_name VALUES {$values} ; ";
答案 2 :(得分:0)
首先,您需要为两个查询定义2个字段数组列表
$col5 = array('field1', 'field2', 'field3', 'field4', 'field5');
$col8 = array('field1', 'field2', 'field3', 'field4', 'field5', 'field6', 'field7', 'field8');
然后
$num = count($data);
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
if ($num == 5) {
$fields = explode($col5, ",");
} else { //assume its 8 if not 5
$fields = explode($col8, ",");
}
$sql = "INSERT INTO $tbl_name (" . $fields . ") VALUES ('" . explode($data, "','") . "')";