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")

时间: 2024-10-10 11:07:29

php执行一条insert插入两条数据其中一条乱码的相关文章

SQL执行一次INSERT INTO查询,插入多行记录

那如果我们想插入多行记录呢?可能你会想到多次运行INSERT语句即可,就像下面的php代码示例: INSERT INTO tbl_name (col1,col2) VALUES (15,16); 那如果我们想插入多行记录呢?可能你会想到多次运行INSERT语句即可,就像下面的.net代码示例: StringBuilder strSql = new StringBuilder(); strSql.Append("INSERT INTO tbl_name (col1,col2) VALUES (15

关于多条id相同,只取其中一条记录的sql语句

需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date  ) as index from tab 分区索引 ------------------------------------------- SQL Server select * from (select * , row_number() over(partition by id order by state desc)

jdbc批量插入实现大批量数据快速插入

今天在做一个将excel数据导入数据库的程序时,由于数据量大,准备采用jdbc的批量插入.于是用了preparedStatement.addBatch();当加入1w条数据时,再执行插入操作,preparedStatement.executeBatch().我原以为这样会很快,结果插入65536条数据一共花30多分钟,完全出乎我的意料.于是问了一下同事,他们在处理这种大批量数据导入的时候是如何处理的,发现他们也是用的jdbc批量插入处理,但与我不同是:他们使用了con.setAutoCommit

DXF 最简单的一个文件生成两个直线一条直线放入BLOCKS中通过INSERT插入 (2)

把#注解删除 0 SECTION 2 HEADER 9 $ACADVER 1 AC1009 9 $INSBASE 10 0.000000 20 0.000000 30 0.000000 9 $EXTMIN 10 0.000000 20 0.000000 9 $EXTMAX 10 6.000000 20 5.200000 0 ENDSEC 0 SECTION 2 TABLES 0 ENDSEC 0 SECTION 2 BLOCKS 0 BLOCK # 从属于BLOCKS 8 0 2 HELLOWO

执行一条sql语句update多条记录实现思路

执行一条sql语句update多条记录实现思路 如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况下,我们会使用以下SQL语句来更新字段值: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免

一条insert语句批量插入多条记录 AND 多条件游标更新 变CASE WHEN更新法提高速度

一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName, city ) values(204,'haha' , 'deng' , 'shenzhen'); (如上,仅插入了一条记录) 怎样一次insert插入多条记录呢? 使用示例: insert into persons (id_p, lastname , firstName, city ) values

执行一条cmd命令的window.bat 批处理代码:

. .执行一条cmd命令的window.bat 批处理代码: @echo off echo NodeJS SUPERVISOR...Server.js ::下面是批处理代码 supervisor d:\WWWBOX\LEAPNODE\server.js ::暂停 3 秒时间 ping -n 3 127.0.0.1 > nul ::暂停 ::pause Exit // 执行启动Nginx-php-mysql的 window 批处理代码 @echo off echo Starting PHP Fas

跟随一条insert语句, 进入TiDB的源码世界(上)

TiDB是google F1的开源实现: TiDB实现了基于mvcc的乐观锁,在线表结构变更,基于时间戳的数据线性一致性,等等: 为了可靠性,TiDB和Oracle一样,维护了百万级别的自动化测试用例,跑在k8s搭建的集群之上: TiDB里面用到的算法,都会写测试程序验证,以证明算法的正确性: 自 google F1开始,数据库被分成了两类: 一类是传统sql,代表如Oracle,依赖于高速网络和磁盘阵列来实现海量数据的扩容和数据的高可靠,成本及其高昂,大部分银行都用了Oracle的系统: 另一

SqlBulkCopy类进行大数据(10000万条以上)插入测试

好多天没写博客了,刚刚毕业一个多月,在IT的路上真是迷茫啊! 关于上一篇博客中提到的,在进行批量数据插入数据库的时候可以通过给存储过程传递一个类型为Table的参数进行相关操作,在这个过程中本人没有进行效率的测试.后来查找发现可以通过SqlBulkCopy类进行大数据插入操作,本文就来介绍一个这个类的作用并做了相关的效率测试(与Insert语句进行对比). SqlBulkCopy只能向SqlServer表写入数据,该表既可以是同一个服务器上的也可以是远程服务器上的.当然要写入的数据即数据源不单单