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 中的未知模块:qml quick - Qt Creator