2017-02-22 40 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()方法即可。