#と$の違い

王林
リリース: 2019-10-25 17:57:12
オリジナル
22640 人が閲覧しました

#と$の違い

両者の最も直接的な違いは次のとおりです。 # はデータに二重引用符を追加することに相当し、$ はデータを直接表示することに相当します。

1, #受信パラメータを文字列として扱います。つまり、プリコンパイルされます。

select * from user where name = #{name}
ログイン後にコピー

たとえば、csdn を渡すと、渡されるパラメータは

になります。
select * from user where name = 'csdn'
ログイン後にコピー

2 、$ は受信値

select * from user where name=${name}
ログイン後にコピー

をプリコンパイルしません。たとえば、csdn を使用している場合、渡される値は

select * from user where name=csdn
ログイン後にコピー

3 になります。 # の利点は次のとおりです。 SQL インジェクションを防ぐにはかなりの範囲で使用できますが、$ はそうではありません。

例: ユーザーがログイン操作を実行し、バックグラウンド SQL 検証スタイルが次のとおりである場合:

select * from user where username=#{name} and password = #{pwd}
ログイン後にコピー

フロント デスクから送信されたユーザー名が「wang」、パスワードが「1」の場合# メソッドを使用する場合、SQL インジェクションは行われません。$ メソッドに変更すると、SQL ステートメントは

select * from user where username=wang and password = 1 or 1=1
ログイン後にコピー

になります。この場合、SQL インジェクションは次のようになります。形成されました。

4. MyBatis をソートするときに動的パラメーターによる順序を使用する場合は、# の代わりに $ を使用することに注意する必要があります。

推奨チュートリアル: mysql チュートリアル

以上が#と$の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!