這個(gè)轉(zhuǎn)義的辦法有點(diǎn)不好理解,就是用單引號(hào)轉(zhuǎn)義單引號(hào),比如''(這是兩個(gè)單引號(hào)),不過很多時(shí)候是'''(三個(gè)單引號(hào)
站在用戶的角度思考問題,與客戶深入溝通,找到潛江網(wǎng)站設(shè)計(jì)與潛江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋潛江地區(qū)。
一起寫
),不過不要怕麻煩,最多我見過一次寫了五個(gè)單引號(hào)的
花括號(hào),花括號(hào)中既可以輸出簡單變量,也可以輸出復(fù)雜變量,如數(shù)組、對(duì)象等;
1.$a = 'abcd';2.$b = array('aaa' = 'abcd', 'bbb' = array(12,34));3.echo "{$a}"; // 輸出 abcd4.echo "{$b['aaa']}"; // 輸出 abcd5.echo "{$b['bbb'][1]}"; // 輸出 34
所以寫的時(shí)候想偷懶就用花括號(hào),不會(huì)出錯(cuò);
但是在性能上,單引號(hào)的性能最好,因?yàn)閱我?hào)中的內(nèi)容會(huì)直接被當(dāng)成字符串,沒其他的解析;而解析雙引號(hào)的時(shí)候,會(huì)先判斷雙引號(hào)內(nèi)有沒有變量,有變量就把變量用變量值代替,最后再輸出雙引號(hào)內(nèi)整個(gè)的內(nèi)容;花括號(hào)就更不用說了,可以輸出復(fù)雜的變量內(nèi)容。
1、首先單引號(hào)和反引號(hào),如圖,這里的? ?'圖書ID'? ?就使用到了單引號(hào),而 CREATE TABLE `book`? 這里的? book? 就使用到了反引號(hào)。
2、單引號(hào):在例子中的條件值周圍使用的是單引號(hào)。SQL 使用單引號(hào)來環(huán)繞文本值。如果是數(shù)值,不要使用引號(hào)。
3、反引號(hào):它是為了區(qū)分MYSQL的保留字與普通字符而引入的符號(hào)。有MYSQL保留字作為字段的,必須加上反引號(hào)來區(qū)分。
4、雙引號(hào)的用法和單引號(hào)有所類似,大多數(shù)數(shù)據(jù)庫都支持單引號(hào)和雙引號(hào)的互換,即varchar類型的變量既可以用單引號(hào)來囊括,也可以用雙引號(hào)。
5、另外,在oracle里面,雙引號(hào)還有一個(gè)意義,那就是保留大小寫。在oracle數(shù)據(jù)庫里面,所有的字段是默認(rèn)為轉(zhuǎn)化成大寫后進(jìn)數(shù)據(jù)庫的,所以如果有一個(gè)表名為user,這個(gè)時(shí)候select * from user;這個(gè)語句是查不出任何數(shù)據(jù)的。
其實(shí)整體轉(zhuǎn)義應(yīng)該也不會(huì)影響太多的性能,用個(gè)正則一下就完成了。
還有個(gè)辦法:單引號(hào)是數(shù)據(jù)庫默認(rèn)的字符串的邊界符,你只要修改就可以了,就是把數(shù)據(jù)庫中表示字符串起始與結(jié)束改用別的符號(hào),Oracle里是可以改的,Mysql你查一下。
MySql字符轉(zhuǎn)義
在字符串中,某些序列具有特殊含義。這些序列均用反斜線(‘\’)開始,即所謂的轉(zhuǎn)義字符。MySQL識(shí)別下面的轉(zhuǎn)義序列:
\0 ASCII 0(NUL)字符。
\' 單引號(hào)(‘'’)。
\" 雙引號(hào)(‘"’)。
\b 退格符。
\n 換行符。
\r 回車符。
\t tab字符。
\Z ASCII 26(控制(Ctrl)-Z)。該字符可以編碼為‘\Z’,以允許你解決在Windows中ASCII 26代表文件結(jié)尾這一問題。(如果你試圖使用mysql db_name file_name,ASCII 26會(huì)帶來問題)。
\\ 反斜線(‘\’)字符。
\%‘%’字符。參見表后面的注解。
\_‘_’字符。參見表后面的注解。
在字符串中,某些序列具有特殊含義。這些序列均用反斜線(‘\’)開始,即所謂的轉(zhuǎn)義字符。MySQL識(shí)別下面的轉(zhuǎn)義序列:
\0
一個(gè) ASCII 0 (NUL) 字符。
\'
一個(gè) ASCII 39 單引號(hào) (“'”) 字符。
\"
一個(gè) ASCII 34 雙引號(hào) (“"”) 字符。
\b
一個(gè) ASCII 8 退格符。
\n
一個(gè) ASCII 10 換行符。
\r
一個(gè) ASCII 13 回車符。
\t
一個(gè) ASCII 9 制表符(TAB)。
\z
ASCII(26) (Control-Z)。這個(gè)字符可以處理在 Windows 系統(tǒng)中 ASCII(26) 代表一個(gè)文件的結(jié)束的問題。(當(dāng)使用 mysql database filename 時(shí) ASCII(26) 可能會(huì)引起問題產(chǎn)生。)
\\
一個(gè) ASCII 92 反斜線 (“\”) 字符。
\%
一個(gè) ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字實(shí)例,否則這里“%”將解釋為一個(gè)通配符。查看章節(jié) 6.3.2.1 字符串比較函數(shù)。
\_
一個(gè) ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字實(shí)例,否則這里“_”將解釋為一個(gè)通配符。查看章節(jié) 6.3.2.1 字符串比較函數(shù).
注意如果在某些正文環(huán)境內(nèi)使用 “\%” 或 “\_”,將返回字符串 “\%” 和 “\_” 而不是 “%” 和 “_”。
字符串中包含引號(hào)的可以有下列幾種寫法:
一個(gè)字符串用單引號(hào)“'”來引用的,該字符串中的單引號(hào)“'”字符可以用“''”方式轉(zhuǎn)義。
一個(gè)字符串用雙引號(hào)“"”來引用的,該字符串中的“"”字符可以用“""”方式轉(zhuǎn)義。
一個(gè)字符串用雙引號(hào)“"”來引用的,該字符串中的單引號(hào)“'”不需要特殊對(duì)待而且不必被重復(fù)或轉(zhuǎn)義。同理,一個(gè)字符串用單引號(hào)“'”來引用的,該字符串中的雙引號(hào)“"”不需要特殊對(duì)待而且不必被重復(fù)或轉(zhuǎn)義。