使用for循环插入多行

时间:2016-08-09 06:38:18

标签: php mysql codeigniter

我想使用for循环将多行插入表中,但是有一些错误。这段代码有什么问题?

$sql=mysql_query("INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES

            for ($i=0;$i<$count;$i++) 
            {
                ('$id','$data['data']['name_'.$i]','$data['data']['val_'.$i]')");
            } 

6 个答案:

答案 0 :(得分:3)

试一试:

$sql = "INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES";
$values = [];

for ($i=0;$i<$count;$i++)
{
    $values[] = "('$id','$data['data']['name_$i]','$data['data']['val_$i]')";
}

$sql .= join(',', $values);
$result = mysql_query($sql);

答案 1 :(得分:3)

Codeigniter活动记录有一个函数insert_batch我认为这就是你需要的:

$data = array(
array(
  'p_id' => 'My id' ,
  'po_name' => 'My Name' ,
  'po_val' => 'My val'
),
array(
  'title' => 'Another title' ,
  'name' => 'Another Name' ,
  'date' => 'Another date'
)
);

$this->db->insert_batch('pl_tbl', $data); 

其他方式:

for ($i=0;$i<$count;$i++) 
  {
     $data = array(
      array(
      'p_id' => $id ,
      'po_name' => $data['data']['name_'.$i] ,
      'po_val' => $data['data']['val_'.$i]
     );
     $this->db->insert('pl_tbl', $data); 
  }

答案 2 :(得分:1)

$data=array();
for ($i=0;$i<$count;$i++) 
{
   $temp=array();
   $temp['p_id'] = 'My id'; //actual value
   $temp['po_name'] = 'My Name'; //actual value
   $temp['po_val'] = 'My val'; //actual value
   array_push($data,$temp);
}
$this->db->insert_batch('pl_tbl', $data);

您可以尝试使用此代码。

答案 3 :(得分:0)

尝试将整个查询保存在变量中,然后使用mysql_query运行应该可以帮助你。

所以代码将是

$sql_query="INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES ";

    for ($i=0;$i<$count;$i++) 
    {
        $sql_query.="('$id','".$data["data"]["name_".$i]."','".$data["data"]["val_".$i]."') ";
    }
$sql=mysql_query($sql_query);

答案 4 :(得分:0)

如果我理解正确,你应该这样做

for ($i=0;$i<$count;$i++) {
    $sql=mysql_query("INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES  ('$id','".$data['data']['name_'.$i]."','".$data['data']['val_'.$i]."')");
} 

答案 5 :(得分:0)

尝试这个简单的代码,它应该适合你..

<?php
  for($i=0;$i<$count;$i++)
  {
     $sql="INSERT INTO pl_tbl (p_id,po_name,po_val) VALUES ('$id','$data['data']['name_'.$i]','$data['data']['val_'.$i]')";
     $result = mysql_query($sql);
  }
?>

感谢