首頁  >  文章  >  資料庫  >  #和$的區別

#和$的區別

王林
王林原創
2019-10-25 17:15:0722473瀏覽

#和$的區別

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

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn