比如說搜索SA-PJ1234-#-12H1301,在php用like模糊查詢資料庫,發現老是查不到。讀取搜索字串時發現,搜索的字串變成了SA-PJ1234-,為何#之后的內容被截斷?
前臺輸入:<input name="code" type='text' placeholder="請輸入編號">
讀取資料:$code = trim($_GET["code"]);
查詢資料:$sql = "select * from tgs_code where code like '%$code%' limit 1";
uj5u.com熱心網友回復:
剛才又測驗了一下發現#&|這三個符號都會出現這個問題,其它諸如!@¥%……*()<>/?都正常,如果是+則會中間空一格,不知道是什么情況。uj5u.com熱心網友回復:
在你構造查詢陳述句的時候需要對特殊字符,如#&|\等字符進行處理,在你讀取到的字符里面查找這些特殊字符,然后在這些特殊字符前面增加轉義符號\即可uj5u.com熱心網友回復:
或者換另外一種效率更高的方法:讀取資料:$code = trim($_GET["code"]);
查詢資料:$sql = "select * from tgs_code where locate('$code',code)>0 limit 1";
uj5u.com熱心網友回復:
mysql 中#是注釋符號,#后的東西都是作為注釋的內容,不會做決議。#和|應該也是有相應的作用,但是具體不是很清楚了。有知道的大神可以科普下。uj5u.com熱心網友回復:
‘&’和‘|’是位運算子,感覺應該會對查詢有影響,不應該截斷。
uj5u.com熱心網友回復:

用引號引起來應該是沒問題的。
uj5u.com熱心網友回復:
$sql = "select * from tgs_code where code like '%{$code}%' limit 1";試試這樣呢
uj5u.com熱心網友回復:
言之有理
uj5u.com熱心網友回復:
sql 中 # 是注釋符號,加個反斜杠 \ 轉義一下試試轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92410.html
標籤:MySQL
上一篇:CSRF-跨站請求偽造
下一篇:BAT檔案無法匯出CSV
