以前の ThinkPHP 3.0 バージョンは、配列モードのクエリ条件に対してセキュリティ フィルタリングを実行します (これは、3.0 ではフィールド タイプ検出の使用が強制されるため、配列モードのクエリ条件はフィールドの設定された種類に強制的に変換されるためです)。ただし、バージョン 3.0 ではサポートされていません。文字列条件のセキュリティ フィルタリングはサポートされていません。 ThinkPHP 3.1 バージョンでは、条件文字列の前処理のサポートが追加され、ORM のセキュリティがより保証されます。
1. where メソッドを使用します
または直接使用します:
$id 変数がユーザーの送信または URL アドレスから取得される場合、受信した型が非数値型の場合、クエリの前に強制的に数値形式にフォーマットされます。
文字列前処理形式タイプは、数値、文字列などの指定をサポートしています。詳細については、vsprintf メソッドのパラメーターの説明を参照してください。
2. クエリを使用してメソッドを実行します
where 条件に加えて、次のようなネイティブ SQL クエリ メソッドの前処理メカニズムもサポートされています。
リーリーモデルの実行メソッドは、クエリメソッドと同様の前処理メカニズムもサポートしています。