色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 連接服務器上mysql

夏志豪2年前11瀏覽0評論

在使用C語言連接MySQL服務器之前,需要先確保已經安裝了MySQL Connector/C,該庫提供了訪問MySQL數據庫的API接口。

// 引入MySQL Connector/C庫
#include <mysql.h>
// 配置連接信息
MYSQL *con = mysql_init(NULL);
if (con == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}
const char* host = "localhost";
const char* user = "root";
const char* password = "password";
const char* database = "test";
// 連接MySQL
if (mysql_real_connect(con, host, user, password, database, 0, NULL, 0) == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}

在實際應用中,通常會將連接信息配置在一個配置文件中,這樣可以方便地修改和管理,例如:

[mysql]
host=localhost
user=root
password=password
database=test

我們可以使用開源的inih來解析配置文件。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <mysql.h>
#include <../inih/ini.h>
// 配置結構體
typedef struct {
const char* host;
const char* user;
const char* password;
const char* database;
} Config;
// 解析配置文件
static int handler(void* user, const char* section, const char* name,
const char* value) {
Config* config = (Config*)user;
if (strcmp(section, "mysql") == 0) {
if (strcmp(name, "host") == 0) {
config->host = strdup(value);
} else if (strcmp(name, "user") == 0) {
config->user = strdup(value);
} else if (strcmp(name, "password") == 0) {
config->password = strdup(value);
} else if (strcmp(name, "database") == 0) {
config->database = strdup(value);
} else {
return 0;
}
} else {
return 0;
}
return 1;
}
int main(int argc, char const* argv[]) {
Config config = {NULL, NULL, NULL, NULL};
if (ini_parse("../config.ini", handler, &config)< 0) {
printf("Error: Can't load config file.\n");
exit(1);
}
MYSQL* con = mysql_init(NULL);
if (con == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
exit(1);
}
if (mysql_real_connect(con, config.host, config.user, config.password, config.database, 0, NULL, 0) == NULL) {
fprintf(stderr, "%s\n", mysql_error(con));
mysql_close(con);
exit(1);
}
mysql_close(con);
return 0;
}

使用C語言連接MySQL服務器就是這么簡單。如果需要進行數據庫操作,可以使用MySQL Connector/C提供的API接口。