1

我想在插入的值中使用循环。

例如

$num = count($data);

for ($c=0; $c < $num; $c++) {
    echo $data[$c] . "<br />\n";

}
 $sql = "INSERT INTO $tbl_name VALUES (    '$data[$c]'   )";

如果 num 为 5 then ,则将创建列 5. 将插入 1 行 5 列。

或如果 num 为 8 then ,则将创建列 8. 将插入 1 行 8 列。

VALUES中,我如何使用循环或

由于列号不固定。所以如何动态插入列数据将创建哪一行(1)。

请问有什么建议吗?

4

3 回答 3

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 .= ")";
于 2013-05-11T12:05:24.910 回答
0

你要这个:

foreach ($data as &$piece){
  $piece = "('{$piece}')" ; //Or you can specify anything else
}

$values = implode(", ", $data) ;

$sql = "INSERT INTO $tbl_name VALUES {$values} ; ";
于 2013-05-11T12:08:14.367 回答
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, "','") . "')";
于 2013-05-11T12:10:14.617 回答