1

何よりもまず、Active Record がすべてのクエリを自動的にエスケープすることと、SQL を手動でエスケープする方法があることを知っています。

$this->db->escape()

問題は、生のSQLクエリを時々使用していることです

$sql = "...."
$this->db->query($sql);

しかし、毎回手動で CI エスケープ関数を呼び出したくありません。

CI に渡されたすべてのクエリを自動的にエスケープさせる方法はありますか? 多分設定できる設定?

4

1 に答える 1

2

ここを参照http://codeigniter.com/user_guide/database/queries.html

URL の下部にあるクエリ バインドの使用を検討してください。クエリのバインドを練習してみてください。これは、より高速でクリーンな方法です。

バインド クエリの例:

$sql = "SELECT * FROM some_table WHERE id = ? AND price = ?"; 

$this->db->query($sql, array(3, 100));

注** バインディング メソッドでは、常に自動的にエスケープされます。

于 2012-08-16T03:39:51.407 に答える