我已經開始在一些日子之前使用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 .. –