sqlite - 如何使用QSqlQuery插入包含 '%'的字符串?

标签 sqlite qt qsqlquery

我尝试使用 QsqlQuery 插入包含“%”的字符串,但总是收到 QSqlError::TransactionError 类型的错误,并显示消息

"near "%": syntax error Unable to execute statement"

我尝试了多种方法来转义“%”,但仍然收到该错误消息。请参阅下面的代码片段。

query.exec(QString("INSERT INTO my_table (name, address) VALUES (\"%1\", \"%2\")")
                  .arg("Harry", "#302%%1,..."));

代替“%%”,我尝试了“\%”、“\%”,但仍然不起作用,并且出现了相同的错误消息。

最佳答案

在 SQL 中,字符串是用 ' 分隔的,而不是 "

无论如何,你应该使用参数:

query.prepare("INSERT INTO my_table (name, address) VALUES (?, ?)");
query.addBindValue("Harry");
query.addBindValue("#302%%1,...");
query.exec();

关于sqlite - 如何使用QSqlQuery插入包含 '%'的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344752/

相关文章:

node.js - Nodejs中生产和开发的不同数据库

qt - 在 PopupCompletion 模式下自动选择 QCompleter 的第一个命题

qt - 如何在Qt6的QML中使用QVideoSink

c++ - 启动时调试应用程序

sql - 如何在 sql 2005 中搜索表?

带有 JSON1 的 Ubuntu 16.04 上的 SQLite

ruby - 新安装后,SQLite3 旧版本仍然存在 (OS X)

android - sqlite查询android异常

c++ - QSqlQuery 行影响结果

linux - 不通过 QSqlQuery 获取所有 sqlite 编译指示的结果