Codeigniter数组插入数据库

时间:2015-05-22 09:05:43

标签: php mysql codeigniter

我已经开始在几天之前使用codeigniter,并且必须说它是我找到的一个很好的框架之一。

我目前面临的问题是多个插入记录。

我需要在表格中添加动态生成的记录,我已完成该循环,如:

for ($i=0;$i<count($arr);$i++)
{
   // Insert query here
}

然而,这种减速过程并没有效率的方式,有没有我可以用于平滑插入?

3 个答案:

答案 0 :(得分:2)

  

您可以使用codeigniter提供的批处理功能。

所以你可以这样做:

"<ul><li>asdf asdfasd asdfasd asdfasd asdfasd asdfasd asdfasd asdfasd asdfasd asdfasd fasdfasd fghfdghd fghdfghd fghdfghd fghdfgh</li></ul>"

有关此问题的更多信息,请参阅:https://ellislab.com/codeigniter/user-guide/database/active_record.html (这个例子我从这个页面本身添加了)

答案 1 :(得分:1)

使用此:

$data = array(
   array(
      'title' => 'title_one' ,
      'name' => 'name_one' ,
      'dob' => 'birth_date_one'
   ),
   array(
      'title' => 'title_two' ,
      'name' => 'name_two' ,
      'dob' => 'birth_date_two'
   )
);
$this->db->insert_batch('table_name', $data); 

答案 2 :(得分:0)

您可以使用自己进行查询并将其称为:

$query = $this->db->query($sql);

实施例

// Create sql query
$sql = 'insert into `table_name` (
            `field_1`,
            `field_2`, 
            `field_3`, 
            `field_4`,
        ) 
        values ';
// Value of each column
foreach ($arr as $data) {       
    $sql .= "("
         . "'" . $data['field_1_name'] . "',"
         . "'" . $data['field_2_name'] . "',"
         . "'" . $data['field_3_name'] . "',"
         . "'" . $data['field_4_name'] . "',"
    "),";
}
// Query to db
try {
    $sql = rtrim($sql, ',');
    return $this->_model->query($sql);
} catch (Exception $e) {
    return false;
}