【问题标题】:How to get an the id inserted using Oracle and Zend如何使用 Oracle 和 Zend 获取插入的 id
【发布时间】:2020-03-04 03:59:45
【问题描述】:

我的问题是,我不知道如何获取刚刚使用 sql 查询插入的第一列的 id。我想将此 id 存储在 php var 中以供以后使用。我在Oracle中看到插入后获取数据是returning column into variable,但我不知道如何在这个东西和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): --------------------------------

【问题讨论】:

    标签: php sql oracle zend-framework


    【解决方案1】:

    在提交新记录时,您可以立即查询以查找最大 ID,假设 ID 是自动递增的。你可以把它写成一个单独的存储过程,插入和提取新的 ID 作为返回值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2011-01-06
      • 1970-01-01
      • 2019-10-28
      • 2017-02-06
      • 1970-01-01
      • 2016-11-25
      相关资源
      最近更新 更多