我正在尝试将表中的一些记录大容量复制到同一个表中,并更改一个字段。但我无法在ZF2中找到正确的方法。
我现有的表如下所示: CoID -- CatCode -- CategoryName
PP -汽车-汽车
PP - Mt -地铁
PP -的士-的士
我想运行这个SQL查询:
插入expcatmaster中选择'RY',CatCode,CategoryName从expcatmaster,其中CoID = 'PP‘
我无法找到将常量'RY‘放入代码中的方法(使用ZF2)。我的CopyCategoryTable.php中的代码如下:
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?尝试谷歌和搜索在这个论坛,但似乎无法解决它。
发布于 2015-06-02 07:59:55
ZF (Zend\Db)中没有批量插入的方法,因此您必须为此编写一个方法。
大容量插入在MySQL中是支持的,但不是在所有数据库中.检查有关链接的讨论。
对于这种情况,可以执行原始SQL查询:
$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();https://stackoverflow.com/questions/30586119
复制相似问题