Yii2でこのコードを実行する正しい方法は何ですか。私はoci_new_cursor() expects parameter 1 to be resource, object given
を得る。DBインスタンスの取得
// get DB instance
$connection = Yii::$app->db;
// set cursor
$refcur = oci_new_cursor($connection);
$q = "BEGIN :RC := REPORT_CARDS.GET_DATA(:I_YEAR); END;";
...
免責事項:私はOracle DBまたはPHP OCI8に精通していません。私が理解する限り、Yiiは内部的にPDOを使用しますが、PDOはOCI8とうまく対応しません。だから、あなたはYiiによって提供される能力が十分でない何かを実際にしようとしていますか? '\ Yii :: $ app-> db-> createCommand($ q) - > execute();のようなものがあなたのために働くでしょうか? – Thernys
@ Thernys私はそれがそうなるとは思わない。 createCommandはSQL文を要求します。私はDBインスタンス上の引数を取る、新しいociカーソルを作成しようとしています – Jonnny
私はあなたが[XY問題](http://meta.stackexchange.com/questions/)の被害者ではないことを主に確認しようとしていました。 66377/what-is-the-xy-problem)があります。 YiiはPDOを使用します。 '\ Yii :: $ app-> db-> pdo'からPDOインスタンスを取得できますが、PDOオブジェクトの基礎となる接続リソースにアクセスできるかどうかは疑問です。 XY問題の部分は、直接的なリソースが本当に必要であり、OCI8を使用するか、PDOインターフェースを使って同じ最終目標を達成できるかどうかです。最後のオプションは当然、生のPHPでYiiの外で作業するか、 'yii \ db \ Connection'から始まるものを上書きすることです。 – Thernys