qt mysql插入多组数据包括中文
时间: 2024-03-27 15:35:34 浏览: 57
在 Qt 中插入多组数据到 MySQL 数据库中,包括中文数据,可以使用 QSqlQuery::prepare() 函数和 QSqlQuery::bindValue() 函数结合使用,示例代码如下:
```cpp
#include <QtSql>
#include <QTextCodec>
int main()
{
// 设置全局编码为 UTF-8
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
// 连接 MySQL 数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mydatabase");
db.setUserName("root");
db.setPassword("");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return 1;
}
// 插入多组数据
QSqlQuery query;
query.prepare("INSERT INTO mytable (name, age) VALUES (:name, :age)");
// 绑定第一组数据
query.bindValue(":name", "张三");
query.bindValue(":age", 20);
if (!query.exec()) {
qDebug() << "Failed to insert data:" << query.lastError().text();
return 1;
}
// 绑定第二组数据
query.bindValue(":name", "李四");
query.bindValue(":age", 25);
if (!query.exec()) {
qDebug() << "Failed to insert data:" << query.lastError().text();
return 1;
}
db.close();
return 0;
}
```
在这个示例中,我们先设置全局编码为 UTF-8,然后连接 MySQL 数据库。在插入多组数据之前,我们使用 QSqlQuery::prepare() 函数来准备 SQL 语句,然后使用 QSqlQuery::bindValue() 函数来绑定不同的值,最后使用 QSqlQuery::exec() 函数来执行 SQL 语句。
需要注意的是,在绑定中文字符串时,需要先将字符串转换为 UTF-8 编码,例如:
```cpp
QString name = "张三";
QByteArray utf8 = name.toUtf8();
query.bindValue(":name", utf8);
```
这样就可以在 Qt 中插入多组数据,包括中文数据了。
阅读全文