使用C语言操作MySQL数据库(c 与 mysql数据库)

使用C语言操作MySQL数据库

MySQL数据库是一种开源的关系型数据库,被广泛应用于各种Web应用。C语言是一种古老却稳定的编程语言,同时也具有高效性和可移植性。在本文中,我们将介绍如何使用C语言操作MySQL数据库以实现数据的读取、插入、删除和更新等基本操作。

1. 安装MySQL C API库

MySQL C API库是一种用于C语言的MySQL接口,需要在编写C程序时使用。其主要功能包括连接数据库、创建表、插入数据、更新数据、删除数据和查询数据等。在使用MySQL C API库之前,请确保已经安装了该库。

2. 连接MySQL数据库

在使用MySQL C API库之前,我们需要先连接MySQL数据库。这可以通过mysql_init()函数来实现。该函数会初始化一个MYSQL结构,并返回该结构的指针。具体代码如下所示:

#include 
int mn(void) {
MYSQL *conn;
conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}

return 0;
}

在上述代码中,我们首先包含mysql.h头文件,其包含了MySQL C API库中所有的函数和结构体。接着,我们使用mysql_init()函数初始化了一个MYSQL结构,并将其赋值给conn指针。如果初始化失败,则输出错误信息并退出程序。

3. 连接MySQL服务器

初始化MYSQL结构后,我们还需要连接MySQL服务器。这可以通过mysql_real_connect()函数来实现。具体代码如下所示:

MYSQL *conn;
conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
exit(1);
}

if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}

在上述代码中,我们使用了mysql_real_connect()函数连接MySQL服务器。其中,参数分别为:MYSQL指针、服务器地址、用户名、密码、数据库名称、端口号、UNIX套接字、连接标志等。如果连接失败,则输出错误信息并关闭连接,并退出程序。

4. 执行MySQL命令

连接MySQL服务器后,我们可以通过mysql_query()函数执行MySQL命令。具体代码如下所示:

if (mysql_query(conn, "SELECT * FROM table")) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}

在上述代码中,我们使用mysql_query()函数执行了一条“SELECT * FROM table”命令。如果执行失败,则输出错误信息并关闭连接,并退出程序。

5. 处理MySQL结果

执行MySQL命令后,我们可以通过mysql_store_result()函数获取查询结果。具体代码如下所示:

MYSQL_RES *res;
MYSQL_ROW row;

if ((res = mysql_store_result(conn)) == NULL) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}

while ((row = mysql_fetch_row(res))) {
printf("%s %s\n", row[0], row[1]);
}

mysql_free_result(res);

在上述代码中,我们使用mysql_store_result()函数获取查询结果,并使用mysql_fetch_row()函数逐行获取结果集。对于每一行数据,我们可以通过row[i]来访问其中的列。在我们使用mysql_free_result()函数释放查询结果。

6. 插入数据

除了查询数据外,我们还可以使用MySQL C API库插入数据。具体代码如下所示:

char *name = "Test";
int age = 20;
char *query = (char*) malloc(100);
sprintf(query, "INSERT INTO table VALUES ('%s', '%d')", name, age);
if (mysql_query(conn, query)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
free(query);

在上述代码中,我们首先定义了name和age变量,并使用sprintf()函数将其格式化为一条“INSERT INTO table VALUES (‘Test’, ’20’)”命令。接着,我们使用mysql_query()函数插入数据。如果插入失败,则输出错误信息并关闭连接,并退出程序。

7. 更新数据

类似地,我们也可以使用MySQL C API库更新数据。具体代码如下所示:

char *name = "Test";
int age = 25;
char *query = (char*) malloc(100);
sprintf(query, "UPDATE table SET age = %d WHERE name = '%s'", age, name);
if (mysql_query(conn, query)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
free(query);

在上述代码中,我们定义了name和age变量,并使用sprintf()函数将其格式化为一条“UPDATE table SET age = 25 WHERE name = ‘Test’”命令。接着,我们使用mysql_query()函数更新数据。如果更新失败,则输出错误信息并关闭连接,并退出程序。

8. 删除数据

我们也可以使用MySQL C API库删除数据。具体代码如下所示:

char *name = "Test";
char *query = (char*) malloc(100);

sprintf(query, "DELETE FROM table WHERE name = '%s'", name);
if (mysql_query(conn, query)) {
fprintf(stderr, "Error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
free(query);

在上述代码中,我们定义了name变量,并使用sprintf()函数将其格式化为一条“DELETE FROM table WHERE name = ‘Test’”命令。接着,我们使用mysql_query()函数删除数据。如果删除失败,则输出错误信息并关闭连接,并退出程序。

综上所述,本文介绍了如何使用C语言操作MySQL数据库,包括连接MySQL数据库、执行MySQL命令、处理MySQL结果、插入数据、更新数据和删除数据等基本操作。通过这些操作,我们可以快速地读取、插入、更新和删除数据,实现各种基于MySQL数据库的应用程序。


数据运维技术 » 使用C语言操作MySQL数据库(c 与 mysql数据库)