2017-02-22 11 views
0

この特定の時点で、DBに2つのレコードを挿入する方法を知りたいと思います。 1つの列の値が1つだけ変更される点を除いて、ほぼ同じです。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

クエリに値が割り当てられていないため、コードが不完全なようです。

代わりにこれを試してください。テーブル$ _mytableのmyColumnカラムに$ fooの内容を追加する方法を示します。複数の値について

$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()メソッドを拡張するだけです。

関連する問題