mysql++中的escape和quote原理的学习

本文解析了MySQLpp库中实现SQL字符串转义及添加引用的具体方法。通过定义枚举值与重载操作符,将普通的SQLQueryParms转换为特殊类型quote_type1,进而实现内容的转义或包裹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了一下mysqlpp中的manip.h这个头文件,大概了解mysqlpp中的escape和quote中的实现方式

msyqlpp::escape和mysqlpp::quote分别是枚举类型quote_type0和枚举类型escape_type0的一个值。

在头文件里面定义了quote_type1 operator << (SQLQueryParms & o, quote_type0);(大概是这样的)
这个quoto_type1是一个简单封装的结构体,里面有一个SQLParam指针类型的成员。这个operator <<函数的作用就是,把参数中的o放到一个新的quoto_type1中的SQLParam指针中,然后这个函数返回这个quote_type1。

然后,后面又有一个SQLParam & operator << (quote_type1 qtype, SQLTypeAdapter & in);
这个函数里面的in参数应该就是query << "..."中query后面的一些参数,就是一个sql查询的内容。

其实原理就是,通过一个枚举值还有一个重载的函数,将一个普通的SQLQueryParms转换成一个“特殊”的quote_type1类型,然后又通过重载一个quote_type1的函数,在这个函数里面实现内容的转义或者加上括号。

就是通过一个“诱饵”把特定的鱼掉上钩,然后让这条鱼区别于普通鱼,做一些特殊的事。学习了~
`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值