2011-01-26 7 views
6

Eventuali duplicati:
How do I add more than one row with Zend_Db?come costruire query di inserimento multiple in Zend Framework

vorrei costruire questa query

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

Ho provato questo, che non ha fatto lavoro

 $adpagemodel = new Admin_Model_AdPage(); 

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

e si prega di controllare anche this

risposta

21

C'è un'opzione semplice. Creare la query a mano;)

come questo:

$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

Non tutti i database supportano questo. Quindi, non esiste una risposta universale. Ma se vuoi dire qual è il tuo DB, potremmo suggerire qualche trucco ... :-)

+0

io uso di database mysql –

+0

mysql supporta questa, ma il problema è che non so come creare questa dichiarazione attraverso dbmodel, invece devo scorrere il ciclo e inserire più valori –