Php 使用for循环插入多行

Php 使用for循环插入多行,php,mysql,codeigniter,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]')");

我想使用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]')");
            } 
$sql=mysql\u query(“插入pl\u tbl(p\u id,po\u name,po\u val)值
对于($i=0;$i请尝试:

$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);
$sql=“插入pl_tbl(采购订单id、采购订单名称、采购订单val)值”;
$values=[];
对于($i=0;$i请尝试:

$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);
$sql=“插入pl_tbl(采购订单id、采购订单名称、采购订单val)值”;
$values=[];

对于($i=0;$iCodeigniter活动记录有一个函数insert\u 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); 
  }
对于($i=0;$i$id),
'po_name'=>$data['data']['name'.$i],
'po_val'=>$data['data']['val'.$i]
);
$this->db->insert('pl_tbl',$data);
}

Codeigniter活动记录具有插入批处理功能,我认为这就是您需要的:

$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); 
  }
对于($i=0;$i$id),
'po_name'=>$data['data']['name'.$i],
'po_val'=>$data['data']['val'.$i]
);
$this->db->insert('pl_tbl',$data);
}

尝试将整个查询保存在一个变量中,然后使用mysql运行。\u查询应该会对您有所帮助

所以代码将是

$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);
$sql\u query=“插入pl\u tbl(采购订单id、采购订单名称、采购订单val)值”;

对于($i=0;$i请尝试将整个查询保存在一个变量中,然后使用mysql运行。\u查询应该会对您有所帮助

所以代码将是

$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);
$sql\u query=“插入pl\u tbl(采购订单id、采购订单名称、采购订单val)值”;

对于($i=0;$i如果我理解正确,你应该这样做

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]."')");
} 

for($i=0;$i如果我理解正确,您应该这样做

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]."')");
} 
用于($i=0;$i
$data=array();
对于($i=0;$idb->insert_batch('pl_tbl',$data));
您可以尝试使用此代码。

$data=array(); 对于($i=0;$idb->insert_batch('pl_tbl',$data));

你可以试试这段代码。

试试这段简单的代码,它应该适合你

<?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);
  }
?>

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

<?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);
  }
?>

然后试试
$values=array();
这难道不能让他将所有数据保存在一行而不是多行吗?@rokas谢谢,我现在看到了。不知道你可以发送多行这样的数据,然后试试
$values=array()
这难道不能让他将所有数据保存在一行而不是多行吗?@rokas谢谢,我现在看到了。不知道你可以发送多行这样的数据。我更新了我的代码。请再试一次。我希望它能工作。我更新了我的代码。请再试一次。我希望它能工作。我像这样插入了
pl\u tbl
()值(),(),()请使用insert_批处理函数形式CI。我像这样插入到
pl_tbl
()值(),(),(),请使用insert_批处理函数形式CI