关于含有单双引号字符串类型的数据插入mysql遇到的问题
2015-09-08 16:25
656 查看
插入数据的SQL语句中,单引号和双引号都行
1.字符串含有单引号问题:
例如语句 “insert into tb_test(abstract) values('you can't get it!')”
如果用以上语句插入到表中时,是插入不成功的,原因是插入的字符串中有单引号,而外面也有单引号,
这个时候,需要对里面的单引号进行处理,即在语句中用两个单引号表示原来的单引号,处理后的语句:
“insert into tb_test(abstract) values('you can‘’t get it!')”
2.字符串含有双引号问题:
例如语句 “insert into tb_test(abstract) values(“you can“t get it!”)”
同理,以上语句也是插入不成功的。
处理方式同上,
“insert into tb_test(abstract) values(“you can“”t get it!”)”
还有一种方法就是在语句中用单引号:
“insert into tb_test(abstract) values(‘you can“t get it!’)”
基于以上的问题,给出一个统一的处理方式,
统一用单引号来处理,这样的话,对于字符串中有双引号,肯定不会有问题,
而如果字符串中出现了单引号,这个时候需要先判断字符串中是否有单引号,
如果有的话,在该单引号后面再加上一个单引号,然后就可以插入数据了。
对于字符串中既含有单引号又含有双引号都可以这样处理。
自己写了一个将字符串中一个单引号替换为两个单引号的方法:
string ReplaceApostrophe(string str)
{
size_t pos = 0;
size_t curpos = 0;
string::iterator it = str.begin();
for (; it != str.end();)
{
curpos = str.find("'", pos);
if (curpos != str.npos)
{
str.replace(curpos, 1, "''");
pos = curpos + 2;
}
else
{
++it;
}
}
return str;
}
参考
http://www.educity.cn/wenda/400050.html http://www.cnblogs.com/dongzhiquan/archive/2011/11/05/2237088.html
1.字符串含有单引号问题:
例如语句 “insert into tb_test(abstract) values('you can't get it!')”
如果用以上语句插入到表中时,是插入不成功的,原因是插入的字符串中有单引号,而外面也有单引号,
这个时候,需要对里面的单引号进行处理,即在语句中用两个单引号表示原来的单引号,处理后的语句:
“insert into tb_test(abstract) values('you can‘’t get it!')”
2.字符串含有双引号问题:
例如语句 “insert into tb_test(abstract) values(“you can“t get it!”)”
同理,以上语句也是插入不成功的。
处理方式同上,
“insert into tb_test(abstract) values(“you can“”t get it!”)”
还有一种方法就是在语句中用单引号:
“insert into tb_test(abstract) values(‘you can“t get it!’)”
基于以上的问题,给出一个统一的处理方式,
统一用单引号来处理,这样的话,对于字符串中有双引号,肯定不会有问题,
而如果字符串中出现了单引号,这个时候需要先判断字符串中是否有单引号,
如果有的话,在该单引号后面再加上一个单引号,然后就可以插入数据了。
对于字符串中既含有单引号又含有双引号都可以这样处理。
自己写了一个将字符串中一个单引号替换为两个单引号的方法:
string ReplaceApostrophe(string str)
{
size_t pos = 0;
size_t curpos = 0;
string::iterator it = str.begin();
for (; it != str.end();)
{
curpos = str.find("'", pos);
if (curpos != str.npos)
{
str.replace(curpos, 1, "''");
pos = curpos + 2;
}
else
{
++it;
}
}
return str;
}
参考
http://www.educity.cn/wenda/400050.html http://www.cnblogs.com/dongzhiquan/archive/2011/11/05/2237088.html
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- 使用C++实现JNI接口需要注意的事项
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 关于指针的一些事情
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志