我有一个包含多个元素的数组。数组的大小并不总是相同。
目前,我能想到的唯一方法是使用foreach
循环,并为数组中的每个元素查询数据库一次。
我正在寻找一种方法为数组中的一个元素插入一行,但所有在一个查询中。我想做的是使用codeigniter的活动记录类,这样我就不必编写代码来检查恶意数据等。
答案 0 :(得分:3)
如果您只想要一个查询,请使用insert_batch
:
$data = array();
// Sample data
$items = array('Value 1', 'Value 2', 'Value 3');
foreach ($items as $value)
{
$data[] = array(
'your_column_name' => $value,
// Populate more columns here if you need to
'date_created' => time()
);
}
$this->db->insert_batch('mytable', $data);
所有值都会自动转义。
文档:http://codeigniter.com/user_guide/database/active_record.html#insert
答案 1 :(得分:0)
您可以拥有$sql .= 'SQL HERE; '
,因此您在一个变量中有多个查询,然后只有一个函数调用来运行查询。