ホームページ  >  記事  >  PHPフレームワーク  >  thinkphpに前処理はありますか?

thinkphpに前処理はありますか?

WBOY
WBOYオリジナル
2022-04-07 16:17:272048ブラウズ

thinkphp には前処理があります。 「ThinkPHP3.1」バージョンでは、条件文字列の前処理のサポートが追加され、ORMのセキュリティがより安全になります。方法: 1. where メソッドを使用して文字列条件を前処理します; 2. query メソッドと実行メソッドを使用してネイティブ SQL クエリ メソッドを前処理します。

thinkphpに前処理はありますか?

この記事の動作環境: Windows 10 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。

thinkphp には前処理がありますか

thinkphp には前処理がありますか

以前の ThinkPHP3.0 バージョンには配列メソッドがありますクエリ条件はセキュリティ フィルタリングされます (これは、3.0 ではフィールド タイプ検出の使用が強制されるため、配列クエリ条件はフィールドのセット タイプに強制的に変換されるためです) が、バージョン 3.0 は文字列のセキュリティ フィルタリングをサポートしていません。条件。 ThinkPHP 3.1 バージョンでは、条件文字列の前処理のサポートが追加され、ORM のセキュリティがより保証されます。

1. where メソッドを使用します

Model クラスの where メソッドは、文字列条件の前処理をサポートします (使用方法:

$Model->where("id=%d and username='%s' and
xx='%f'",array($id,$username,$xx))->select();

)、または直接使用します。 :

$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();

$id 変数がユーザーの送信または URL アドレスから取得される場合、入力タイプが非数値タイプの場合、クエリの前に強制的に数値フォーマットにフォーマットされます。

文字列前処理形式タイプでは、数値、文字列などの指定がサポートされています。詳細については、vsprintf メソッドのパラメータの説明を参照してください。

2. クエリとメソッドの実行

where 条件に加えて、前処理メカニズムはネイティブ SQL クエリ メソッドでもサポートされています (例:

$Model->query("SELECT * FROM think_user WHERE id=%d and username='%s' and xx='%f'",array($id,$username,$xx));
)。

モデルの実行メソッドは、クエリ メソッドのような前処理メカニズムもサポートしています。

thinkphpに前処理はありますか?

推奨学習: 「PHP ビデオ チュートリアル

以上がthinkphpに前処理はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。