如何解决如何在QSqlQuery中使用变量?
我想实现一种方法,该方法将在退出程序时检查搜索具有localhost IP地址的条目并删除这些行。
问题是,我不确定如何在Qt中执行此操作,我在搜索时找不到任何具体的东西。有没有一种方法可以在qt中创建sql变量,或者可以在sql查询中使用qt变量?为了让您了解我想做什么,请参见以下内容:
QSqlQuery query;
query.exec("DELETE FROM host WHERE ip = <localhost_variable??>");
有什么提示吗?
解决方法
解决方案
您当然可以按照@NgocMinhNguyen的建议直接在查询中插入该值,但是不建议这样做,因为这会打开安全漏洞。
推荐使用的方法是使用query bindings。
示例
以下是我为您准备的一个简短示例,以演示如何在您的情况下实施建议的解决方案:
QSqlQuery query;
query.prepare("DELETE FROM host WHERE ip = :localhost");
query.bindValue(":localhost",localhost_variable);
query.exec();
,
QSqlQuery::exec()
将字符串作为参数,因此您可以使用:
QSqlQuery query;
query.exec(QString{"DELETE FROM host WHERE ip = %1"}.arg("some_localhost_ip"));
最终查询将是:
DELETE FROM host WHERE ip = some_localhost_ip
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。