Qt中操作数据库时,给LIKE子句绑定命名占位符的值

本文介绍了在Qt中为提高SQL安全性,如何使用命名占位符来绑定LIKE子句的值,以防止SQL注入。通过示例代码展示了具体操作过程,特别指出在使用SQLite数据库时,应将命名占位符转换为位置占位符。
摘要由CSDN通过智能技术生成

Qt中操作数据库时,为提高安全性,防止SQL注入,可以使用命名占位符和位置占位符。

本文以命名占位符为例,演示如何给LIKE子句中的占位符绑定值,代码如下:

/*从person表中按工号查找最多limitCnt条人员信息,用于"识别新卡号"界面使用
**
**no :需要查询的工号
**rslt :查询结果
**limitCnt :最多返回的结果条数
**
**返回值 :成功后返回true;否则返回false.返回false时,rslt不可用.
**
**注意 :如果没有查询到符合条件的记录,则也认为查询是成功的.
*/
bool selPersonAvailable(const QString &no,QVector<QString> &rslt,const int limitCnt){
	static const QString funcErrMsg="从person表中按工号查找最多limitCnt条人员信息,用于\"识别新卡号\"界面使用时,%1失败.";

	QString sql="select pnam,pno,rno from person where pno like :pno and state<>'d' limit :limitCnt ";//注意,like的百分号(%)不直接写到SQL字符串中
	bool ok;

	//_log(QString("no=%1,limitCnt=%2").arg(no).arg(limitCnt));

	QSqlDatabase db=QSqlDatabase::database(DB_CONN_NAME);
	QSqlQuery query(db);

	query.prepare(sql);
	query.bindValue(":pno",QString("%%1%").arg(no));/
本课程详细、全面地介绍了 Qt 开发的各个技术细节,并且额外赠送在嵌入式端编写Qt程序的技巧。整个课程涵盖知识点非常多,知识模块囊括 Qt-Core 组件、QWidgets、多媒体、网络、绘图、数据库,超过200个 C++ 类的分析和使用,学完之后将拥有 Qt 图形界面开发的非常坚实的功底。 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程来源于线下的实体班级,因此视频有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。注意:本套视频教程包含大量课堂源码,包含对应每个知识点的精心编排的作业。由于CSDN官方规定在课程介绍不能出现作者的联系方式,因此在这里无法直接给出QQ答疑号,视频的源码、资料和作业文档链接统一在购买后从CSDN平台跟我沟通,我会及回复跟进。注意:本套视频教程包含全套10套作业题,覆盖所有视频知识点,循序渐进,各个击破,作业总纲如下:下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)…… ……
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值