如何在php中使用insert的insert值

时间:2013-05-11 11:59:52

标签: php mysql

我想在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)。

请提出任何建议?

3 个答案:

答案 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, "','") . "')";