2011-01-26 13 views
6

thể trùng lặp:
How do I add more than one row with Zend_Db?làm thế nào để xây dựng nhiều truy vấn chèn trong khuôn khổ zend

tôi muốn xây dựng truy vấn này

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

tôi đã cố gắng này mà không làm việc

 $adpagemodel = new Admin_Model_AdPage(); 

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

và cũng vui lòng kiểm tra this

Trả lời

21

Có tùy chọn đơn giản. Tạo truy vấn bằng tay;)

như thế này:

$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

Không phải tất cả cơ sở dữ liệu đều hỗ trợ điều này. Vì vậy, không có câu trả lời phổ quát. Nhưng nếu bạn cho bạn biết DB của bạn là gì, chúng tôi có thể đề xuất một số mẹo ... :-)

+0

tôi sử dụng cơ sở dữ liệu mysql mysql –

+0

hỗ trợ này, nhưng vấn đề là tôi không biết làm thế nào để tạo ra tuyên bố này thông qua dbmodel, thay vì tôi phải lặp qua vòng lặp và chèn nhiều giá trị –