Joomla - 使用单个查询插入多行

时间:2017-02-22 07:31:16

标签: mysql joomla

在这个特定时刻,我想知道如何在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)
    );
    ...

如您所见,只有第一个值发生变化。有没有一些优雅的方法来做到这一点?

1 个答案:

答案 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()方法。