數(shù)據(jù)庫的編碼是 gbk 的,在查詢的時候把中文(utf-8)轉(zhuǎn)換成 gbk編碼就可以了
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站建設、盧龍網(wǎng)絡推廣、小程序制作、盧龍網(wǎng)絡營銷、盧龍企業(yè)策劃、盧龍品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供盧龍建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
$nickname=iconv('utf-8','gbk//TRANSLIT',$nickname);
轉(zhuǎn)換后才執(zhí)行查詢
只有兩種情況的
第一個是數(shù)據(jù)庫的編碼和你的頁面編碼不一致。
要保持都為utf8;
第二個 是你的表名一定錯了,table是系統(tǒng)默認的關鍵字,不能用作表名字的。
MYSQL的字段名轉(zhuǎn)義使用返引號`,不是單引號,注意上面代碼的下面部分:
WHERE '賬戶'='中文'; //查詢中文字報錯,數(shù)字字母都能正常查詢
【賬戶】是字段名,應使用反引號:
`賬戶`
【中文】是常量,單雙引號都可以,但是要注意你現(xiàn)在的語句是在單引號里面,因此應該轉(zhuǎn)義或者使用雙引號,這部分可以修改為:
WHERE 賬戶="中文"';
另外,如果只是查詢中文內(nèi)容才報錯,可能你粘貼代碼和原始代碼有區(qū)別,原始代碼沒有把字段名放在單引號里面,否則是查不到內(nèi)容的。查詢中文內(nèi)容報錯,一般是中文的編碼和網(wǎng)頁文件的編碼、以及數(shù)據(jù)庫的編碼不一致,你這來數(shù)據(jù)庫是UTF8,那么PHP腳本文件、瀏覽器網(wǎng)頁都必須使用UTF-8
用php調(diào)用存儲過程,就可以了。
存儲過程不會的話,先將查詢的結(jié)果集保存為數(shù)組,在foreach遍歷數(shù)組對要修改的字段進行編輯,在執(zhí)行update。