mysql 轉義函式 mysql字串轉義函式

2021-10-17 13:17:39 字數 785 閱讀 7452

在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乙個退格符。乙個單引號 符。乙個雙引號 符。乙個反斜線 符。乙個 符。它用於在正文中搜尋 的文字例項,否則這裡 將解釋為乙個萬用字元。乙個 符。它用於在正文中搜尋 的文字...