我已经开始在几天之前使用codeigniter,并且必须说它是我找到的一个很好的框架之一。
我目前面临的问题是多个插入记录。
我需要在表格中添加动态生成的记录,我已完成该循环,如:
for ($i=0;$i<count($arr);$i++)
{
// Insert query here
}
然而,这种减速过程并没有效率的方式,有没有我可以用于平滑插入?
答案 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;
}