c++使用数据库增删改查
时间: 2025-04-17 13:38:16 浏览: 24
### C++ 实现数据库 CRUD 操作
#### 连接 MySQL 数据库
为了使 C++ 应用程序能够执行 CRUD 操作,首先需要确保应用程序可以成功连接到 MySQL 数据库。这涉及到配置环境变量并加载必要的头文件和动态链接库[^2]。
```cpp
#include <mysql/mysql.h>
#include <iostream>
MYSQL* connect_to_mysql(const char *host, const char *user, const char *password, const char *database) {
MYSQL* conn;
MYSQL_RES* res_set;
MYSQL_ROW row;
conn = mysql_init(NULL);
if (conn == NULL) {
std::cerr << "MySQL initialization failed\n";
return NULL;
}
if (mysql_real_connect(conn, host, user, password, database, 0, NULL, 0) == NULL) {
std::cerr << "Connection error : " << mysql_error(conn);
mysql_close(conn);
return NULL;
}
return conn;
}
```
#### 创建记录(Create)
创建新记录涉及向表中插入数据。下面是一个简单的例子,展示如何通过 `INSERT` 语句来完成这一操作[^3]:
```cpp
void create_record(MYSQL* conn) {
int qstate = mysql_query(conn, "INSERT INTO fly_table1 (`course`, `teacher`, `price`) VALUES ('linux C/C++', 'fly', 0.0)");
if (!qstate) {
std::cout << "Record inserted successfully.\n";
} else {
std::cerr << "Insertion Error: " << mysql_error(conn) << "\n";
}
}
```
#### 查询记录(Read)
读取现有记录可以通过发送 SELECT 请求给服务器,并处理返回的结果集来进行:
```cpp
void read_records(MYSQL* conn) {
if(mysql_query(conn,"SELECT * FROM fly_table1")) {
std::cerr << "Selection Error: " << mysql_error(conn) << "\n";
return;
}
MYSQL_RES *res = mysql_store_result(conn);
while ((row = mysql_fetch_row(res)) != NULL){
printf("%s %s %.2f \n", row[0], row[1], atof(row[2]));
}
}
```
#### 更新记录(Update)
更新特定条件下的记录可通过构建合适的 UPDATE 语句实现:
```cpp
void update_record(MYSQL* conn) {
int qstate = mysql_query(conn, "UPDATE fly_table1 SET price=99.9 WHERE course='linux C/C++'");
if(!qstate){
std::cout << "Record updated successfully.\n";
}else{
std::cerr << "Update Error: " << mysql_error(conn) << "\n";
}
}
```
#### 删除记录(Delete)
最后,删除不再需要的数据项可借助 DELETE 语句完成:
```cpp
void delete_record(MYSQL* conn) {
int qstate = mysql_query(conn, "DELETE FROM fly_table1 WHERE teacher='fly'");
if(!qstate){
std::cout << "Record deleted successfully.\n";
}else{
std::cerr << "Deletion Error: " << mysql_error(conn) << "\n";
}
}
```
阅读全文
相关推荐


















