在mysql插入資料表,如果資料中帶有'\「會造成語法錯誤,這個不用解釋,***,因此需要寫個轉義函式,一開始想直接用string的replace,但是這個方法要呼叫3次
放在服務端感覺效率太低了,於是用c寫了個,感覺還可以,時間複雜度跟需要轉義字元的個數無關,如果源串沒有匹配的話不需要copy操作.
//轉義函式,『轉成\'
bool convertodbstr( const char* src,char*dst )
int i = -1;//記錄上次匹配的位置
int doffset = 0;//目標字串游標
int ncopy = 0;//本次需要成 copy的位元組數
const char*p = src;
while( *p )
if( *p=='\\'||*p=='\''||*p=='"' )
ncopy = p-src-i-1;
memcpy( dst+doffset,src+i+1,ncopy );
doffset+=ncopy;
*(dst+offset)='\\';
*(dst+doffset+1)=*p;
doffset+=2;
i = p-src;
p++;
if( doffset>0 )//有匹配到,copy最後的字串
memcpy( dst+doffset,src+i+1,p-src-i );
return true;
return false;
可以看到,這個函式稍微改動下就可以實現replace
mysql sql 轉義符 MySQL的轉義字元
mysql可以識別下列轉義字元 0乙個ascii 0 nul 字元。n乙個新行符。t乙個定位符。r乙個回車符。b乙個退格符。乙個單引號 符。乙個雙引號 符。乙個反斜線 符。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將解釋為乙個萬用字元。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將...
mysql 轉義 MySql字元轉義
在字串中,某些序列具有特殊含義。這些序列均用反斜線 開始,即所謂的轉義字元。mysql識別下面的轉義序列 0ascii 0 nul 字元。單引號 雙引號 b退格符。n換行符。r回車符。ttab字元。zascii 26 控制 ctrl z 該字元可以編碼為 z 以允許你解決在windows中ascii...
mysql 轉義字元6 mysql轉義字元
mysql的轉義字元 mysql識別下列轉義字元 0乙個ascii 0 nul 字元。n乙個新行符。t乙個定位符。r乙個回車符。b乙個退格符。乙個單引號 符。乙個雙引號 符。乙個反斜線 符。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將解釋為乙個萬用字元。乙個 符。它用於在正文中搜尋 的文字...