odb c последний идентификатор вставки для php сценария - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь использовать приведенный ниже скрипт (скрипт находится в PHP, база данных - ODB C соединение с db2 для as400), но у меня возникают проблемы из-за того, что db2_last_insert_id является неизвестной функцией.

Мне нужно использовать настройку odb c для этого скрипта, и все другие функции odb c работают, но я не могу найти функцию в ODB C, которая копирует функциональность db2_last_insert_id

Каков наилучший способ получения идентификатора вставленной строки в самом скрипте?

if($DB2connPROD){

$insertTable = "INSERT INTO testing_insert_php (name) VALUES ('Temp Name')";

$stmt = odbc_exec($DB2connPROD, $insertTable);
$ret =  db2_last_insert_id($DB2connPROD);

if($ret) {
    echo "Last Insert ID is : " . $ret . "\n";
} else {
    echo "No Last insert ID.\n";
}

odbc_close($DB2connPROD);

}

1 Ответ

0 голосов
/ 13 февраля 2020

Используйте VALUES identity_val_local() в качестве запроса. Он вернет набор результатов с одной строкой и столбцом.

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

Фактически, и IBM_DB2, и PDO_IBM требуют клиента DB2, и единственный, который работает с DB2 для я найден в продукте DB2 Connect. Если только веб-сервер не работает на IBM i.

...