在这个特定时刻,我想知道如何在DB中插入两条记录。两者几乎相同,只有一个列值发生变化。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('col1','col2', 'col3', 'col4', 'col5');
$values = array(
$db->quote(A),
$db->quote(x1),
$db->quote(x2),
$db->quote(x3),
$db->quote(x4)
);
$values = array(
$db->quote(B),
$db->quote(x1),
$db->quote(x2),
$db->quote(x3),
$db->quote(x4)
);
...
如您所见,只有第一个值发生变化。有没有一些优雅的方法来做到这一点?
答案 0 :(得分:0)
您的代码似乎不完整,因为它不会将您的值分配给查询。
试试这个。它显示了如何将$ foo的内容添加到表#__ mytable中的myColumn列。
$query->insert($db->quoteName('#__mytable'))
->columns('myColumn');
->values(implode(',', array(
$db->quote($foo)
)));
$query->execute();
对于多个值,这会有所帮助:
foreach($myValues as $myValue) {
$query->values(implode(',', array(
$db->quote($myValue),
)));
}
虽然我的示例中只有一个值,但如果需要,可以添加多个列。只需扩展columns()和values()方法。