检索PHPOCI中最后插入的ROWID。

问题描述 投票:2回答:2

在PHP中可以检索最后插入的Oracle行的rowid吗?我正在尝试。

$statement = oci_parse($conn, "INSERT INTO myTable (...) VALUES ( ...)");
$results = oci_execute($statement);
while($row = oci_fetch_assoc($statement)) {
    $rowid = $row['ROWID'];
}

没有结果 我得到的错误信息是 定义在获取或执行和获取之前不做。 在获取行。

php oracle oci
2个回答
2
投票

声明。

$var = "AAAV1vAAGAAIb4CAAC";

使用。

INSERT INTO myTable (...) VALUES ( ...)
RETURNING RowId INTO :p_val

将你的变量绑定到一个PHP变量上。

oci_bind_by_name($statement, ":p_val", $val, 18);

0
投票

由于前面的回答对我来说不是很清楚,因为它缺乏一些重要的信息,我将指出一个类似的方法。

在你的SQL语句中,添加 RETURNING INTO句。

$statement = oci_parse($conn, "INSERT INTO myTable (...) VALUES ( ...) RETURNING ID INTO :id");

这里的 ID 是你要返回的列名。在执行 $statement你需要将一个PHP变量绑定到你的返回值。这里我使用了 $returnId (你不需要事先声明或分配任何默认值)。

oci_bind_by_name($statement, ":id", $returnId);

只有 之后 绑定变量,语句就可以被执行。

$success = @oci_execute($statement);

$returnId 现在已经有了这个变量的值。ID 之前插入的列。

© www.soinside.com 2019 - 2024. All rights reserved.