2011-01-26 21 views
6

Duplicar posibles:
How do I add more than one row with Zend_Db?cómo construir múltiples consulta de inserción en Zend Framework

me gustaría construir esta consulta

INSERT INTO ad-page (ad_name, page_name) VALUES ('value1', 'value2'), ('value3', 'value4') , .... 

He intentado esto, que no lo hizo trabajo

 $adpagemodel = new Admin_Model_AdPage(); 

     if(count($adpage)> 0) 
      foreach($adpage as $page) 
      { 
       $newdatap[]['page_name'] = $page; 
       $newdata[]['ad_name'] = $adname;    
      } 
     $adpagemodel->insert($newdata); 

y consultar también this

Respuesta

21

Hay una opción simple. Crear la consulta con la mano;)

así:

$query = 'INSERT INTO ' . $db->quoteIdentifier('table') . ' (`col1`, `col2`) VALUES '; 
$queryVals = array(); 
foreach ($data as $row) { 
    foreach($row as &$col) { 
     $col = $db->quote($col); 
    } 
    $queryVals[] = '(' . implode(',', $row) . ')'; 
} 
$stmt = $db->query($query . implode(',', $queryVals)); 
2

No todas las bases de datos apoyan esto. Entonces, no hay una respuesta universal. Pero si usted diga cuál es su DB, podemos sugerir algún truco ... :-)

+0

i el uso de bases de datos MySQL MySQL soporta –

+0

esto, pero el problema es que no sé cómo crear este comunicado a través de dbmodel, en lugar tengo que iterar a través del ciclo e insertar múltiples valores –