首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2大容量插入使用插入.从表到同一表中选择

问ZF2大容量插入使用插入.从表到同一表中选择
EN

Stack Overflow用户
提问于 2015-06-02 01:58:21
回答 1查看 1.3K关注 0票数 2

我正在尝试将表中的一些记录大容量复制到同一个表中,并更改一个字段。但我无法在ZF2中找到正确的方法。

我现有的表如下所示: CoID -- CatCode -- CategoryName

PP -汽车-汽车

PP - Mt -地铁

PP -的士-的士

我想运行这个SQL查询:

插入expcatmaster中选择'RY',CatCode,CategoryName从expcatmaster,其中CoID = 'PP‘

我无法找到将常量'RY‘放入代码中的方法(使用ZF2)。我的CopyCategoryTable.php中的代码如下:

代码语言:javascript
复制
public function insCategory($FromCoID, $ToCoID) {
    $SelCol = array(
        'CoID',
        'CatCode',
        'CategoryName',
    );

    $adapter = $this->tableGateway->getAdapter();
    $sql = new Sql($adapter);
    $SelQry =$sql->select();
    $SelQry->columns($SelCol);
    $SelQry->from('ExpcatMaster');
    $SelQry->where(array('CoID' => $FromCoID));
    echo $SelQry->getSqlString();

    $InsQry = $sql->insert();
    $InsQry->into('ExpcatMaster');
    $InsQry->select($SelQry);
    $InsData = $sql->prepareStatementForSqlObject($InsQry);
    echo $InsQry->getSqlString();

    $this->tableGateway = $InsData->execute();

}

如何将select表中的CoID的实际值替换为传递给函数的$ToCoID?尝试谷歌和搜索在这个论坛,但似乎无法解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-02 07:59:55

ZF (Zend\Db)中没有批量插入的方法,因此您必须为此编写一个方法。

Zend\Db\Sql\Sql多批插入

大容量插入在MySQL中是支持的,但不是在所有数据库中.检查有关链接的讨论。

对于这种情况,可以执行原始SQL查询:

代码语言:javascript
复制
$parameters = ['name 1', 'desc 1', 'name 2', 'desc 2'];
$sql        = 'INSERT INTO table (name, description) VALUES (?, ?), (?, ?);';
$resultSet  = $this->adapter->query($sql, $parameters);

return $resultSet->getAffectedRows();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30586119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档