Как получить идентификатор вставлен с использованием Oracle и Zend - PullRequest
0 голосов
/ 07 ноября 2019

Моя проблема в том, что я не знаю, как получить идентификатор первого столбца, только что вставленного с SQL-запросом. Я хочу сохранить этот идентификатор в 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): --------------------------------

1 Ответ

0 голосов
/ 07 ноября 2019

При отправке новой записи вы можете сразу же запросить максимальный идентификатор, предполагая, что идентификаторы автоматически увеличиваются. Вы можете записать его как одну хранимую процедуру, которая вставляет и извлекает новый идентификатор как возвращаемое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...