PHP ORACLE AdoDb неправильное поведение при использовании подготовленного оператора

В настоящее время я работаю над проектом, который использует библиотеку ADODB PHP 5.20.9 (последняя версия)

В большинстве случаев все работает как положено, но я не могу использовать функции БД внутри запроса вставки, который сделан с подготовленными этапами.

В качестве примера, sequence.nextval инструкции обрабатываются как строка, и кажется, что ORACLE передается как строка, а не функция, которая должна быть вызвана.

Ниже приведен полный пример для воспроизведения ошибки:

--Table creation
CREATE TABLE TEST_DATA
   ("PK" VARCHAR2(100), 
    "TESTNOTE" VARCHAR(100),
    "TESTDATE" DATE
   )
)

--Sequence creation
CREATE SEQUENCE SEQ_TEST_TABLE
INCREMENT BY 1 MINVALUE 1
CACHE 20 NOCYCLE    


//PHP code example, require include for ADODB library

$bindVariables = array('PK' => 'SEQ_TEST_TABLE.nextval',
                       'TESTNOTE' => 'SOME INFORMATIONS',
                       'TESTDATE' => 'SYSDATE');

$insertQuery = "INSERT INTO TEST_TABLE (PK, TESTNOTE, TESTDATE)
                VALUES (:PK, :TESTNOTE)";

try {    
    $result = $dbDbi->execute($insertQuery,$bindVariables);    
 } catch(Exception $e) {
      echo $e->getMessage();
}

Весь код будет выполнен без ошибок, но внутри поля PK я нашел SEQ_TEST_TABLE.nextval вместо ожидаемого числового значения

0 ответов

Другие вопросы по тегам