php执行一条insert插入两条数据其中一条乱码
Posted yangakwtags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php执行一条insert插入两条数据其中一条乱码相关的知识,希望对你有一定的参考价值。
显然这就是编码问题,但是问题从哪来的呢,
我把文件编码以及代码的编码都设置成utf-8了,为什么还有这个问题于是我就开始写测试脚本
第一条
mysql_query(‘insert into table value(1,1,"思考思考123")‘)
测试没有问题
第二条
$name=$_GET["name"];
mysql_query(‘insert into table value(1,1,"‘.$name.‘")‘)
测试出问题了,数据库竟然插入了两条数据,原来编码问题是从网络请求中产生的;
既然发现了问题就解决问题,
一种方法是对网络请求进行过滤
一种是对sql语句过滤。
代码的逻辑就是如果不是utf-8编码的语句就不能执行。
采用如下方法进行过滤
if( mb_detect_encoding($sql, array(‘GB2312‘,‘GBK‘,‘UTF-8‘))=="UTF-8"){
...
}
insert into table value(1,1,"思考思考123")
以上是关于php执行一条insert插入两条数据其中一条乱码的主要内容,如果未能解决你的问题,请参考以下文章
PHP怎么使用mysql的insert into语句将三个输入框里的字符内容当作表的一条记录插入数据库中?这个该怎...