文章目錄
- 一、初始化數據庫
- 二、創建數據庫連接
- 三、執行增刪改查語句
- 1、增刪改
- 2、查
- 四、執行增刪改查語句
接下來我簡單的介紹一下怎么用C語言連接數據庫。
- 初始化數據庫
- 創建數據庫連接
- 執行增刪改查語句
- 關閉數據庫連接
一、初始化數據庫
// 數據庫初始化
MYSQL mysql;
MYSQL* ret1 = mysql_init(&mysql);
if (ret1 == nullptr)
{std::cerr << "init_error" << std::endl;exit(-1);
}/*****************
返回值:如果沒有足夠的內存來分配新對象,則為空。
*****************/
二、創建數據庫連接
// 數據庫連接
MYSQL* ret2 = mysql_real_connect(&mysql, host.c_str(), user.c_str(), passwd.c_str(), db.c_str(), port, nullptr, 0);
if (ret2 == nullptr)
{std::cerr << "connect_error" << std::endl;exit(-1);
}/*****************
參數:1、MYSQL *mysql ===> 創建的數據庫變量2、const char *host ===> 主機號, 如果是本地可以用"127.0.0.1"3、const char *user ===> 用戶名4、const char *passwd ===> 密碼5、const char *db ===> 數據庫名6、unsigned int port ===> 端口號7、剩下的兩個參數一個置空,一個置0就行
返回值:如果沒有足夠的內存來分配新對象,則為空。
*****************/
三、執行增刪改查語句
這個部分需要分成兩類:增刪改、查。增刪改只需要考慮這個語句執行的是否是正常的,但是查詢這個操作還需要通過返回值得到查詢的結果。
1、增刪改
// 執行增刪改
std::string sql = "insert into user (name, age) values ('wangwu', 19);";
int ret3 = mysql_query(&mysql, sql.c_str());
if (ret3)
{std::cerr << "query_error" << std::endl;exit(-1);
}
2、查
- 執行查詢語句
- 得到結果集
- 得到結果集的行數和列數
- 遍歷即可
// 執行查找語句
std::string sql = "select * from user;";
int ret4 = mysql_query(&mysql, sql.c_str());
if (ret4)
{std::cerr << "query_error" << std::endl;exit(-1);
}
// 得到結果集
MYSQL_RES* res = mysql_store_result(&mysql);// 得到行數和列數
int row = mysql_num_rows(res);
int field = mysql_num_fields(res);// 得到列名
MYSQL_FIELD* fields = mysql_fetch_fields(res);
for (int i = 0; i < row; i++)
{// 注意,不能直接打印,需要指定里面的name屬性std::cout << fields[i].name << " ";
}
std::cout << "\n";// 遍歷得到結果集
MYSQL_ROW line;
for (int i = 0; i < row; i++)
{line = mysql_fetch_row(res);for (int j = 0; j < field; j++){std::cout << line[j] << " ";}std::cout << "\n";
}
四、執行增刪改查語句
// 關閉數據庫
mysql_close(&mysql);
cout << “\n”;
}
# 四、執行增刪改查語句[外鏈圖片轉存中...(img-9HkkinoN-1733452583128)]```cpp
// 關閉數據庫
mysql_close(&mysql);