まとめようとしているプロジェクトでは、PHP のオブジェクト リレーショナル マッピング ソリューションを作成して実装しました。懐疑論者や夢想家が「いったいどうやって?」と叫ぶ前に、リラックスしてください-私は遅い静的バインディングを機能させる方法を見つけていません-私はできる限り最善の方法でそれを回避しています.
いずれにせよ、私は現在クエリにプリペアド ステートメントを使用していません。なぜなら、bind_params()
またはbind_result()
メソッドに可変数の引数を渡す方法が思いつかなかったからです。
可変数の引数をサポートする必要があるのはなぜですか? 私のモデルのスーパークラス (私のソリューションをハッキングされた PHP ActiveRecord 志望者と考えてください) は、クエリが定義されている場所であり、たとえば、find() メソッドは、バインドする必要があるパラメーターの数を認識していません。 .
ここで、引数リストを作成して文字列を eval() に渡すことをすでに考えましたが、その解決策はあまり好きではありません。独自のセキュリティ チェックを実装してステートメントを渡すだけです。
これを実現する方法について、何か提案 (または成功事例) がある人はいますか? この最初の問題を解決するのを手伝ってくれれば、結果セットのバインドに取り組むことができるかもしれません (テーブル構造を決定するための最初のクエリが必要な場合は、より困難になるか、少なくともリソースを大量に消費すると思われます)。