我已经开始在一些日子之前使用codeigniter,并且必须说它是我发现的一个伟大的框架之一。Codeigniter数组插入到数据库中
目前我遇到的问题是多重插入记录。
有动态生成的记录我需要在表中添加,我已经与循环要做的事,如:
for ($i=0;$i<count($arr);$i++)
{
// Insert query here
}
然而,这种放缓过程,也没有有效的方法,有anythig我可以用于顺利插入?
我已经开始在一些日子之前使用codeigniter,并且必须说它是我发现的一个伟大的框架之一。Codeigniter数组插入到数据库中
目前我遇到的问题是多重插入记录。
有动态生成的记录我需要在表中添加,我已经与循环要做的事,如:
for ($i=0;$i<count($arr);$i++)
{
// Insert query here
}
然而,这种放缓过程,也没有有效的方法,有anythig我可以用于顺利插入?
你可以做的是使用codeigniter提供的批处理功能。
所以,你可以不喜欢它:
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data)
有关更多信息,恳求参考:https://ellislab.com/codeigniter/user-guide/database/active_record.html (这个例子中我已经从这个页面本身添加)
谢谢你这是工作! – Lerry
使用此:
$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);
谢谢你的工作 – Lerry
您可以使用自己制作查询并像这样调用它:
$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;
}
我认为你应该使用insert_batch .. –