【发布时间】:2013-08-28 19:10:42
【问题描述】:
我需要获取在 PHP 中使用 PDO 插入的最后一行。我一直在搜索,我找到了 PDO::lastInsertId,但它在 Oracle 上不起作用。
我有什么选择?其他方法可以做到这一点?我想使用 PDO 获取序列的当前值(在该表中我使用序列来增加 ID),但我不知道是否可以。
更新 1:
这是我的代码。
static function insertarProveedor($name, $address, $phone, $email) {
$con = conexionBD();
try {
$stmt = $con->prepare("INSERT INTO Proveedores (NOMBRE, DIRECCION, TELEFONO, EMAIL) VALUES (?, ?, ?, ?)
RETURNING OID_PROVEEDOR INTO :id");
$stmt->bindParam(1, $nombre);
$stmt->bindParam(2, $direccion);
$stmt->bindParam(3, $telefono);
$stmt->bindParam(4, $correo);
$stmt->bindParam('OID_PROVEEDOR', $id, PDO::PARAM_INT, 8);
} catch (PDOException $e) {
echo "Error".$e->GetMessage();
}
return $id;
}
我收到以下消息错误:
ErrorSQLSTATE[HY093]:参数号无效:混合命名和 位置参数
注意:未定义变量:第 43 行 D:\xampp\htdocs\Gestor\include\inserciones.inc 中的 id
第 43 行是return $id;
【问题讨论】:
-
更新 1 后的代码是正确的,但变量名称不匹配,因此 OID_PROVEEDOR 的 SQL 值试图存储为变量 :id,bindParam 试图将 PHP var $id 附加为存储的 var :OID_PROVEEDOR跨度>