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 вместо ожидаемого числового значения