QT数据库模块错误

Posted

技术标签:

【中文标题】QT数据库模块错误【英文标题】:QT database module error 【发布时间】:2018-08-09 12:08:51 【问题描述】:

我第一次在 QT 5.6.0 版本中为数据库模块编写代码,但我在下面的行中遇到错误,我不知道如何解决该问题

代码行:

QString insertTable=QString("INSERT INTO %1(%2,%3)" "VALUES (%4,%5)".arg(tableName).arg("\'schema\'","\'timestamp\'").arg(schema,timestamp));

错误是:

C:\Users\ankit.ahlawat\Desktop\Infosys\git\IoTGateway_Database\database.cpp:212: error: request for member 'arg' in '"INSERT INTO %1(%2,%3)VALUES (%4,%5)"', which is of non-class type 'const char [36]'
                             "VALUES (%4,%5)".arg(tableName).arg("\'schema\'","\'timestamp\'").arg(schema,timestamp));

                                      ^

【问题讨论】:

在没有格式化的情况下很难看到发生了什么。我什至不确定那里有代码。 我很抱歉,现在我编辑了那个问题 【参考方案1】:

你在调用QString构造函数时放错了括号:

QString("INSERT INTO %1(%2,%3)" "VALUES (%4,%5)".arg(tableName).arg("\'schema\'","\'timestamp\'").arg(schema,timestamp))

应该是:

QString("INSERT INTO %1(%2,%3)" "VALUES (%4,%5)").arg(tableName).arg("\'schema\'","\'timestamp\'").arg(schema,timestamp)

【讨论】:

@ankitAhlawat 你不应该直接形成查询,因为你很容易受到 SQL 注入攻击,你应该做的是使用addBindValue() @eyllanesc 使用 addBindValue() 我做到了,但现在我正在尝试使用 QString 所以......我是 QT 的新手 @ankitAhlawat 但如果您这样做,您的应用程序很容易受到攻击,这是不好的做法

以上是关于QT数据库模块错误的主要内容,如果未能解决你的问题,请参考以下文章

Qt - 错误:未知模块networkauth [关闭]

错误:QT 中的未知模块:qml quick - Qt Creator

Qt 模块错误 - QtOpenGL 中的 LNK 1112

项目错误:QT 中的未知模块:websockets

项目错误:QT 中的未知模块:webengine

项目错误:QT 中的未知模块:webkitwidgets [重复]