函数一:

 std::string CheckString(std::string& strSource)
{
std::string strOldValue = "'";
std::string strNewValue = "''";
for(std::string::size_type pos(); pos != std::string::npos; pos += strNewValue.length())
{
if ((pos = strSource.find(strOldValue, pos)) != std::string::npos)
{
strSource.replace(pos, strOldValue.length(), strNewValue);
}
else
{
break;
}
}
return strSource;
}

方法二:

 std::string& replace_all_distinct(std::string& str,const std::string& old_value,const std::string& new_value)
{
for(std::string::size_type pos(); pos!=std::string::npos; pos+=new_value.length())
{
if((pos=str.find(old_value,pos)) != std::string::npos)
str.replace(pos,old_value.length(),new_value);
else
{
break;
}
}
return str;
}

使用:

例如:

replace_all_distinct("sub'ject","'","''");
CheckString("subj'e'ct");

字符串中有单引号

SQL数据插入字符串时转义函数的更多相关文章

  1. MySql数据库-查询、插入数据时转义函数的使用

    最近在看一部php的基础视频教程,在做案例的时,当通过用户名查询用户信息的时候,先使用了转义函数对客户提交的内容进行过滤之后再交给sql语句进行后续的操作.虽然能看到转义函数本身的作用,但是仍然有一些 ...

  2. Sql Server的艺术(七) SQL 数据插入操作

    --用INSERT插入单行数据 在SQL中,可以通过INSERT...VALUES语句直接向数据库表中插入数据.可以整行,也可以部分列. 基本语法: INSERT INTO table_name [c ...

  3. SQL数据插入

    T-SQL中提供了多个将数据插入到表中的语句:insert values.insert select.insert exec.select into和Bulk insert: 1.  insert v ...

  4. c# winform Chart Pie 中若X轴数据为字符串时,#VALX取值为0

    https://q.cnblogs.com/q/83848/ 在winform程序中用自带的Chart进行画图表时,若画饼图,其中X轴数据为字符串,这时候如果想设置Label值的格式为#VALX:#V ...

  5. 小议SQL数据插入

    --数据插入操作:INSERT INTO user_info(username,age) VALUES('ZHANGSAN',20);INSERT INTO user_info(username,ph ...

  6. SQL数据插入:将截断字符串或二进制数据

    将图片等较多数据保存到数据库的过程中会遇到: -- :: EL图片保存到数据库出错 条码:DE1132 异常原因:System.Data.SqlClient.SqlException: 将截断字符串或 ...

  7. PL/SQL编写的SQL语句插入SqlPlus时,报错 PLS-00302

    最近刚开始用PL/SQL,然后发现写SQL语句时,运行的时候,会对表中的字段报错. 好像是对字段的使用有问题 原来写的错误代码大概像这样 DECLARE xuehao XSB.id% TYPE; BE ...

  8. SQL 数据插入、删除 大数据

    --测试表 CREATE TABLE [dbo].[Employee] ( [EmployeeNo] INT PRIMARY KEY, [EmployeeName] [nvarchar](50) NU ...

  9. SQL SERVICE 拆分字符串的表值函数

    SQL代码 ALTER FUNCTION [dbo].[SplitToTable]( @SplitString nvarchar(max), @Separator nvarchar(10)=' ')R ...

随机推荐

  1. Crontab '2>&1 &' 含义

    Crontab '2>&1 &' 含义 - dosttyy - 博客园 https://www.cnblogs.com/dosttyy/p/4810026.html

  2. C# 枚举 小总结

    枚举 枚举类型声明为一组相关的符号常数定义了一个类型名称. 枚举类型为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.例如:假设你必须定义一个变量,该变量的值表示一周中的一天.该变量只能存储七 ...

  3. PHP AOP编程思想

    AOP思想(面向切面编程) 在应用开发中,我们经常发现需要很多功能,这些功能需要经常被分散在代码中的多个点上,但是这些点事实上跟实际业务没有任何关联.比如,在执行一些特殊任务之前需要确保用户是在登陆状 ...

  4. sql两列相除,保留n位小数

    ), ) from tablename 以上代码意思两列相处,然后保留4位小数.

  5. Python装饰器与面向切面编程(转)

    add by zhj: 装饰器的作用是将代码中可以独立的功能独立出来,实现代码复用,下面那个用于统计函数运行时间的装饰器就是很好的例子,我们不用修改原有的函数和调用原有函数的地方,这遵循了开闭原则.装 ...

  6. 为什么*p++等于*(p++)?

    你要先搞懂i++与++i的区别.i++是先赋值再自增,对于指针也是一样的.所以*p++是先取值,然后p再自增.加个括号还是一样的,*(p++)括号里面的内容还是p++,所以还是要先取值然后p再自增. ...

  7. 实习培训——Java基础(1)

    实习培训——Java基础(1) 1.我的第一个JAVA程序 首先好配置好JDK环境,百度上有很多.创建文件HelloWorld.java(文件名与类名相同),代码如下: public class He ...

  8. spring security积累

    使用数据库管理用户权限: Spring Security默认情况下需要两张表,用户表和权限表 create table users( username varchar_ignorecase(50) n ...

  9. input的text输入框设置大一点

    <input type="text" style="height:51px;width:449px;font-size:12px;">12可以随意改 ...

  10. Redis缓存穿透问题及解决方案

    上周在工作中遇到了一个问题场景,即查询商品的配件信息时(商品:配件为1:N的关系),如若商品并未配置配件信息,则查数据库为空,且不会加入缓存,这就会导致,下次在查询同样商品的配件时,由于缓存未命中,则 ...