qt mysql 插入中文 代码编写
时间: 2023-09-15 17:18:43 浏览: 98
下面是一个简单的 Qt 中插入中文数据到 MySQL 数据库的示例代码:
```
#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) VALUES (:name)");
query.bindValue(":name", "中文名称");
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 语句。
请注意,由于我们在 MySQL 中设置了 utf8 字符集,因此可以直接将中文字符串作为值绑定到 SQL 语句中。如果你的 MySQL 数据库使用的是其他字符集,你可能需要使用 QTextCodec 对象将字符串转换为相应的字符集。
阅读全文