php执行一条insert插入两条数据其中一条乱码
顯然這就是編碼問題,但是問題從哪來的呢,
我把文件編碼以及代碼的編碼都設(shè)置成utf-8了,為什么還有這個(gè)問題于是我就開始寫測試腳本
第一條
mysql_query('insert into table value(1,1,"思考思考123")')
測試沒有問題
第二條
$name=$_GET["name"];
mysql_query('insert into table value(1,1,"'.$name.'")')
測試出問題了,數(shù)據(jù)庫竟然插入了兩條數(shù)據(jù),原來編碼問題是從網(wǎng)絡(luò)請求中產(chǎn)生的;
?
既然發(fā)現(xiàn)了問題就解決問題,
一種方法是對網(wǎng)絡(luò)請求進(jìn)行過濾
一種是對sql語句過濾。
代碼的邏輯就是如果不是utf-8編碼的語句就不能執(zhí)行。
采用如下方法進(jìn)行過濾
if(?mb_detect_encoding($sql, array('GB2312','GBK','UTF-8'))=="UTF-8"){
...
}
?
?
?
insert into table value(1,1,"思考思考123")
轉(zhuǎn)載于:https://www.cnblogs.com/yang95/articles/5327507.html
總結(jié)
以上是生活随笔為你收集整理的php执行一条insert插入两条数据其中一条乱码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 食饵捕食者模matlab,数学建模经典基
- 下一篇: php 复习