c++ 数据库的增删改查
时间: 2023-06-24 11:04:34 浏览: 102
数据库的增删改查
在 C++ 中操作数据库需要使用数据库 API,比如MySQL的C API或者SQLite的C API。
下面是一个基本的增删改查的例子,以MySQL为例:
```c++
#include <iostream>
#include <mysql/mysql.h>
int main() {
MYSQL *conn = mysql_init(NULL);
if (conn == NULL) {
std::cerr << "Error: mysql_init()" << std::endl;
return EXIT_FAILURE;
}
if (mysql_real_connect(conn, "localhost", "username", "password", "database", 0, NULL, 0) == NULL) {
std::cerr << "Error: mysql_real_connect()" << std::endl;
return EXIT_FAILURE;
}
// 插入数据
std::string insert_sql = "INSERT INTO table_name (col1, col2) VALUES ('value1', 'value2')";
if (mysql_query(conn, insert_sql.c_str()) != 0) {
std::cerr << "Error: mysql_query()" << std::endl;
return EXIT_FAILURE;
}
// 删除数据
std::string delete_sql = "DELETE FROM table_name WHERE col = 'value'";
if (mysql_query(conn, delete_sql.c_str()) != 0) {
std::cerr << "Error: mysql_query()" << std::endl;
return EXIT_FAILURE;
}
// 更新数据
std::string update_sql = "UPDATE table_name SET col1 = 'new_value' WHERE col2 = 'value2'";
if (mysql_query(conn, update_sql.c_str()) != 0) {
std::cerr << "Error: mysql_query()" << std::endl;
return EXIT_FAILURE;
}
// 查询数据
std::string select_sql = "SELECT * FROM table_name";
if (mysql_query(conn, select_sql.c_str()) != 0) {
std::cerr << "Error: mysql_query()" << std::endl;
return EXIT_FAILURE;
}
MYSQL_RES *result = mysql_use_result(conn);
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
std::cout << row[0] << "," << row[1] << std::endl;
}
mysql_free_result(result);
mysql_close(conn);
return EXIT_SUCCESS;
}
```
需要注意的是,这只是一个简单的例子,实际使用中需要注意SQL注入等安全问题。此外,对于更复杂的数据库操作,可以使用ORM库(比如Qt的QSql)来简化代码。
阅读全文