如何在Zend Framework中构建多个插入查询

6
可能重复:
如何使用Zend_Db添加多行?

我想构建这个查询

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

我尝试过这个方法,但没有成功

        $adpagemodel = new Admin_Model_AdPage();

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

请同时检查这个

2个回答

21

有一个简单的方法,就是手动创建查询语句 ;)

像这样:

$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

并非所有数据库都支持此功能,所以没有通用答案。但如果您告诉我们您使用的数据库,我们可能会建议一些技巧... :-)


MySQL支持这个功能,但问题是我不知道如何通过DBModel创建这个语句,而是必须通过循环迭代并插入多个值。 - S L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接