带变量的 SQL 查询
SQL Query with variables
我试图将值插入mysql数据库:
database->queryDatabase("INSERT INTO recordings (title, recording, kit, date) VALUES ('"+recordingTitle+"', '"+ recordingArray +"', '"+kitID+"', '"+recordingDateTime+"')");
数据库>查询数据库只是将其发送到我的数据库连接。
我遇到的问题是:
error: no match for 'operator+' in 'operator+(const QString&, const char*)(((const char*)"', '")) + ((Studio*)this)->Studio::recordingDateTime
每个变量的类型是:
QString recordingTitle;
std::vector<std::pair<int, QString> > recordingArray;
int kitID;
QDateTime recordingDateTime;
如何将每个添加到数据库中?向量和 QDateTime 类型不喜欢查询字符串中的 +。
塔恩克斯
没有将QDateTime
隐式转换为QString
。您需要显式转换它:
database->queryDatabase("INSERT INTO recordings (title, recording, kit, date)"
" VALUES ('" + recordingTitle + "', '" + recordingArray +"', '" + kitID +
"', '" + recordingDateTime.toString() + "')");
您可能需要提供一个格式说明符才能将其转换为MySQL喜欢的格式。
还请记住,连接 SQL 查询不是一个好主意,除非您确切地知道自己在做什么,因为它会启用 SQL 注入攻击。应使用 bindValue 方法。这也会产生副作用,即查询将变得更快,并且很可能解决原始问题。
相关文章:
- 如何使用c++在VS 2019上运行SQL查询
- 如何在 sql 查询中获取 soci::rowset<std::string>
- 如何从 Oracle 数据库中获取 qt 中 SQL 查询的传输字节大小?
- 在C++中异步执行 sql 查询
- 仅在Android上查询时SQL逻辑错误
- C++ Poco SQL 查询不返回具有'between'和'and'日期时间绑定的结果
- SQL 查询返回DB_E_NOTABLE
- Windows 10 中的 MS Access 数据库 SQL 查询问题
- QODBC连接到SQL Server,但无法执行查询
- 带变量的 SQL 查询
- 是否有用于查询 HTML 表的 SQL 包装器
- 输入数据未分配给SQL查询
- CString 到 LPCTSTR 的转换会中断 sql 查询
- 使用BoostSpirit在C++中解析SQL查询
- C++程序中存在SQL查询语法错误,但可在MySQL工作台中使用
- QT 查询 SQL 精简版数据库
- 显示 QLabel 中 sql 查询的输出
- Qt sql 查询失败
- 具有多个值的 sql 列(cpp 文件中的查询实现)
- 在 C++ 控制台应用程序中编写 SQL 查询