1

私は Oracle データベースと CakePHP 2.3 に取り組んでいます。CakePHP は Oracle をサポートしていないため (ドライバーはありません)、モデルで Oracle プロシージャまたは php OCI8 関数を使用しています。

その結果、私は CakePHP フレームワークから見た有効なデータベース リンクなしで CakePHP を使用しています。

コメントをデータベースに保存する前にクリーンアップするためにこのメソッドを使用しようとしてSanitize::cleanいますが、データベースでそのタスクを検索しているように見えるため、問題が発生しています。

これは結果のエラーです:

データベース接続「Mysql」が見つからないか、作成できませんでした。

そして、これは私がそれを消毒しようとする方法です:

$comment = Sanitize::clean($this->request->data['comment']);

これを行うだけで完全に機能します:

$comment = $this->request->data['comment'];

Sanitize::cleanCakePHP 2.3 でデータベースを設定せずに使用することは可能ですか?

ありがとう

4

1 に答える 1

1

関数 Sanitize::clean() はデフォルトで 2 つの引数を期待します。2 番目の引数を指定しない場合、CakePHP はデフォルト値を使用し、「デフォルト」接続で DB に接続しようとします。ライブラリのサニタイズ クラスをざっと見たところ、DB 接続が必要なのは「エスケープ」オプションのようです。これは、文字列を SQL セーフにするためにデフォルトで呼び出されます。

したがって、あなたの場合、SQL接続は必要ないため、このリクエストでうまくいくはずです:

$comment = Sanitize::clean($this->request->data['comment'], array('escape' => false);

Sanitize クラスの詳細については、CookBook を確認してください。

于 2013-05-03T12:48:16.607 に答える