在PHP中可以检索最后插入的Oracle行的rowid吗?我正在尝试。
$statement = oci_parse($conn, "INSERT INTO myTable (...) VALUES ( ...)");
$results = oci_execute($statement);
while($row = oci_fetch_assoc($statement)) {
$rowid = $row['ROWID'];
}
没有结果 我得到的错误信息是 定义在获取或执行和获取之前不做。 在获取行。
声明。
$var = "AAAV1vAAGAAIb4CAAC";
使用。
INSERT INTO myTable (...) VALUES ( ...)
RETURNING RowId INTO :p_val
将你的变量绑定到一个PHP变量上。
oci_bind_by_name($statement, ":p_val", $val, 18);
由于前面的回答对我来说不是很清楚,因为它缺乏一些重要的信息,我将指出一个类似的方法。
在你的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
之前插入的列。