在存儲過程中,密碼中有』(單引號),第一反應使用轉義字元。敲上/(反斜杠),失敗告終; 網路一下如下結果,SQL 的轉義字元是:'(單引號),所以在密碼中寫』』(兩個單引號),表示一個單引號。C++ 的轉義字元是:\SQL 的轉義字元是:'(單引號)例:select * from tbl where uyear='''06'請注意其中紅色背景的單引號,它即表示轉義字元,如果我們省略,則整個語句會出錯,轉義字元不會輸出,上例中 uyear 的實際條件值為 '06,而不是 ''06為什麼不能省略呢,假如我們省略,上句變成:select * from tbl where uyear=''06'由於在 SQL 中單引號表示字元串的開始和結束符號,於是 SQL 解釋器會認為語句中灰色背景的為字元串,其後的語句顯然是個錯誤的語句,當然會報錯,為了解決字元串的單引號問題,就出現了轉義字元單。
2. sql server中sql語句中單引號怎麼轉義
sql server有兩個轉義符: ' 默認情況下, '是字元串的邊界符, 如果在字元串中包含', 則必須使用兩個', 第1個'就是轉義符 另一個轉義符是" 當SET QUOTED_IDENTIFIER OFF時, "是字元串邊界符, 字元串中的"必須用兩個"表示。 vb: "" <= " sql server 2000: ''' <= 'eg:declare @SearchType nvarchar(50) declare @SearchString nvarchar(255) declare @SearchKey nvarchar(50) declare @SearchSql nvarchar(2000) set @SearchType = '2' set @SearchKey = 'd' set @SearchString = CASE @SearchType when '1' then '1 = 1' when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + '''' when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +'''' when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + '''' when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +''''ENDset @SearchSql = N' SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and ' + @SearchString
3. sql需要轉義的字元有哪些
特殊轉義:單引號 -- 用2個單引號''
兩種比較常見的方式
(1)用中括弧[]轉義
WHERE ColumnA LIKE 'aaa[_]bbb' ---
(2)用關鍵字ESCAPE 轉義
WHERE ColumnA LIKE '%aaa/%bbb%' ESCAPE '/'
註:
1)方式2不如1方便,適用面也窄小,清晰度也差。
2)方式0在使用動態SQL,尤其是「嵌套 + 代碼生成」的高級應用中,很容易出錯
4. SQL語句中轉義字元怎麼寫
0、特殊轉義:單引號
--
用2個單引號''
兩種比較常見的方式
1、用中括弧[]轉義
WHERE
ColumnA
LIKE
'aaa[_]bbb'
---
2、用關鍵字ESCAPE
轉義
WHERE
ColumnA
LIKE
'%aaa/%bbb%'
ESCAPE
'/'
註:
A)方式2不如1方便,適用面也窄小,清晰度也差。
B)方式0在使用動態SQL,尤其是「嵌套
+
代碼生成」的高級應用中,很容易出錯。
5. SQL語句中轉義字元怎麼寫
兩種比較常見的方式 :1.用中括弧[ ]轉義。 2.用關鍵字ESCAPE 轉義。
6. sql語句中如何插入轉義字元
只要在插入庫之前作處理就可以了。利用replace函數把單引號替換為其它字元,如str.replace("'","*");其中str是你加密後的字元串!
7. SQL語句like子句中的轉義符(解決like搜索%搜索到全部內容)
SQL LIKE里查詢有下劃線'_'或是'%'等值的記錄,直接寫成like 'XXX_XX',則會把'_'當成是like的通配符。
例如搜索 select * from user_all_tables where table_name like '%%%' 會將表中所有數據檢索出來
Android SQL中暫時發現''%''為通配符
SQL里提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和C里的'\'很像,但是escape要求自定義一個轉義符,而不是指定了'\』字元。如:
select * from user_all_tables where table_name like 'YW__%' escape '_'
含義是查出當前用戶表下所有以'YW_'開頭的表,其中第一個'_'是轉義符,第二個是被轉義的字元,等效可以寫成:
select * from user_all_tables where table_name like 'YW\_%' escape '\'
這里 如果直接搜索通配符例如設置 escape '_' 直接搜索 _ SQL語句為: select * from user_all_tables where table_name like '%_%' 這時會將 含%內容全部搜索出來 ,這里現行解決方案為兩條SQL語句
String.contains()判斷搜索內容是否含有'%'
若含有則使用 select * from user_all_tables where table_name like '%%%' escape '_'
不含則使用 select * from user_all_tables where table_name like '%%%'
原文鏈接
8. pl/sql有沒有查詢數據存在轉義字元
在處理MySQL和GET、POST的數據時,常常要對數據的引號進行轉義操作。
PHP中有三個設置可以實現自動對』(單引號),」(雙引號),\(反斜線)和 NULL 字元轉轉。
php稱之為魔術引號,這三項設置分別是
magic_quotes_gpc
影響到 HTTP 請求數據(GET,POST 和 COOKIE)。不能在運行時改變。在 PHP 中默認值為 on。
這個開啟時,通過GET,POST,COOKIE傳遞的數據會自動被轉義。
如 test.php?id=abc'de"f
echo $_GET['id']; # 會得到 abc\'de\"f
magic_quotes_gpc=On; 這個開啟了,對寫入資料庫是沒有影響的,比如 上面的$_GET['id'] 寫到資料庫裡面,依然是 abc'de"f ,
相反,如果magic_quotes_gpc=Off; 那麼字元中要帶有引號(不管單引號還是雙引號) ,直接寫入mysql都會直接變成空白
但是,如果你將它寫入文檔,而非mysql。那麼它將是 abc\'de\"f
magic_quotes_runtime
如果打開的話,大部份從外部來源取得數據並返回的函數,包括從資料庫和文本文件,所返回的數據都會被反斜線轉義。該選項可在運行的時改變,在 PHP 中的默認值為 off。
magic_quotes_sybase
如果打開的話,將會使用單引號對單引號進行轉義而非反斜線。此選項會完全覆蓋 magic_quotes_gpc。如果同時打開兩個選項的話,單引號將會被轉義成 」。而雙引號、反斜線 和 NULL 字元將不會進行轉義。
我表單內容本來是:<img alt=」" width=」400″ height=」300″ src=」/Upfiles/201105/images/1306657040.jpg」 />
<img alt=\」\」 width=\」400\」 height=\」300\」 src=\」/Upfiles/201105/images/1306657040.jpg\」 />
對策一:修改php.ini文件(修改php.ini這個方法就不說了,大家可以google下)
對策二:把轉義的給取消了
第一步:找到你提交的數據比如$_POST['content'],將其改成$content=stripslashes($_POST['content']);
第二步:以後在使用$POST['content']的地方都換成$content
第三步:提交到資料庫,資料庫儲存還是正常的:<img alt=」" width=」400″ height=」300″ src=」/Upfiles/201105/images/1306657040.jpg」 />讀出來又成了
<img alt=\」\」 width=\」400\」 height=\」300\」 src=\」/Upfiles/201105/images/1306657040.jpg\」 />(這個應該知道怎麼解決了吧?要不我再羅嗦下吧)
第四步:將資料庫讀取的內容再用stripslashes()過濾一下。
stripslashes() 這個函數 ,刪除由addslashes()函數添加的反斜杠。用於清理從資料庫或 HTML 表單中取回的數據
(
PHP頁面中如果不希望出現以下情況:
單引號被轉義為 \'
雙引號被轉義為 \"
那麼可以進行如下設置以防止:
在php.ini中設置:magic_quotes_gpc = Off)
總結如下:
1. 對於magic_quotes_gpc=on的情況,
我們可以不對輸入和輸出資料庫的字元串數據作
addslashes()和stripslashes()的操作,數據也會正常顯示。
如果此時你對輸入的數據作了addslashes()處理,
那麼在輸出的時候就必須使用stripslashes()去掉多餘的反斜杠。
2. 對於magic_quotes_gpc=off 的情況
必須使用addslashes()對輸入數據進行處理,但並不需要使用stripslashes()格式化輸出
因為addslashes()並未將反斜杠一起寫入資料庫,只是幫助mysql完成了sql語句的執行。
9. mybatis sql轉義符號怎麼寫
1、在xml的sql語句中,不能直接用大於號、小於號要用轉義字元
如果用小於號會報錯誤如下:
org.apache.ibatis.builder.BuilderException:
Error
creating
document
instance.
Cause:
org.xml.sax.SAXParseException:
The
content
of
elements
must
consist
of
well-formed
character
data
or
markup.
轉義字元
2、使用
<![CDATA[
]]>標記的sql語句中的<where><if>等標簽不會被解析