Php 如何使用Oracle和Zend获取插入的id
我的问题是,我不知道如何获取刚刚插入sql查询的第一列的id。我想把这个id存储在php变量中,以便以后使用。我在Oracle中看到,在插入后获取数据是Php 如何使用Oracle和Zend获取插入的id,php,sql,oracle,zend-framework,Php,Sql,Oracle,Zend Framework,我的问题是,我不知道如何获取刚刚插入sql查询的第一列的id。我想把这个id存储在php变量中,以便以后使用。我在Oracle中看到,在插入后获取数据是将列返回变量,但我不知道如何在这个东西和php Zend之间进行通信。toto变量始终为空。我正在使用ZendFramework和Oracle 我想做的是: public function createNewAssemblage($aQData) { $toto = " "; // Recuperation du nouveau
将列返回变量
,但我不知道如何在这个东西和php Zend之间进行通信。toto
变量始终为空。我正在使用ZendFramework和Oracle
我想做的是:
public function createNewAssemblage($aQData)
{
$toto = " ";
// Recuperation du nouveau ID assemblage
// Preparation de la requete pour l'insertion des données dans la table
// assemblage
$sQuery = "INSERT INTO assemblage (
id_depot_publication, num_assemblage, orig_assemblage)
VALUES (:0, :1, :2)
returning ID_ASSEMBLAGE into :3";
$valReturn = false;
$mResult = $this
->executeQueries($sQuery,
array($aQData['id_depot_publication'],
$aQData['num_assemblage'], $aQData['orig_assemblage'],$toto
));
$this->_logger->err("--------------------------------");
$this->_logger->err("ID_ASSEMBLAGE");
$this->_logger->err($toto);
$this->_logger->err("--------------------------------");
// Mise en session de l'identifiant session
if ($mResult) {
$this->commit();
$sQuery = 'SELECT ASSEMBLAGE_ID_ASSEMBLAGE_SEQ.currval FROM dual';
$this->executeQueries($sQuery);
$aResultSet = $this->getOneResult();
$_SESSION['saveIdAssemblage'] = $aResultSet;
self::$staticIdAssemblage = $aResultSet;
$valReturn = $aResultSet;
}
return $valReturn;
}
结果是:
2019-11-07T15:23:25+01:00 ERR (3): --------------------------------
2019-11-07T15:23:25+01:00 ERR (3): ID_ASSEMBLAGE
2019-11-07T15:23:25+01:00 ERR (3):
2019-11-07T15:23:25+01:00 ERR (3): --------------------------------
在提交新记录时,您可以立即查询以查找最大ID(假设ID是自动递增的)。您可以将其编写为单个存储过程,以插入和提取新ID作为返回值