我可以使用RETURNING子句PDO_OCI吗?我被建议使用它来获取正在使用触发器更新的字段的最后一个ID。
我找到了一个使用oci_bind_by_name获取ID的教程,但这似乎是oci8驱动程序的一个功能。是否有与PDO_OCI中的oci_bind_by_name相似的内容?
$query = "INSERT INTO employees (name) VALUES ('Jones') RETURNING employee_no INTO :employee_no";
stmt = oci_parse($dbh, $query);
oci_bind_by_name($stmt, ":employee_no", $employee_no, 8);
http://from8to5.blogspot.com/2011/03/oracle-php-returning-clause-statement.html
答案 0 :(得分:1)
对于OUT参数,如果数据不是字符串(CHAR,VARCHAR2等),则应指定类型,即
// assuming employee_no is an integer
oci_bind_by_name($stmt, 'employee_no', $employee_no, 8, SQLT_INT);
oci_execute($stmt);
对于PDO,请使用PDOStatement::bindParam()
$stmt = $pdo->prepare($query);
$stmt->bindParam('employee_no', $employee_no, PDO::PARAM_INT, 8);
$stmt->execute();