2017-02-22 67 views
0

在此特定时刻,我想知道如何将两条记录插入数据库。两者几乎相同,只有一个列值发生变化。Joomla - 使用单个查询插入多行

$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

您的代码似乎是不完整的,因为它不会将您的值分配给查询。

试试这个。它显示了如何将$ 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()方法即可。