#和$的區別

王林
發布: 2019-10-25 17:57:12
原創
22634 人瀏覽過

#和$的區別

他們之間的差異用最直接的話來說就是:#相當於對資料 加上 雙引號,$相當於直接顯示資料。

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 or 1=1”,用#的方式就不會出現sql注入,而如果換成$方式,sql語句就變成了 

select * from user where username=wang and password = 1 or 1=1
登入後複製

這樣的話就形成了sql注入。

4、MyBatis排序時使用order by 動態參數時需要注意,用$而不是#。

推薦教學:mysql教學

以上是#和$的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!