0

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;

4

2 に答える 2

0

1 つの代替方法は、最初にシーケンスから次の値を取得してから、insert ステートメントで使用することです。

于 2013-08-26T11:33:21.110 に答える