c,#include,#include,#includeint main() {, MYSQL *conn;, MYSQL_RES *res;, MYSQL_ROW row; const char *server = "localhost";, const char *user = "root";, const char *password = "your_password"; /* set me first */, const char *database = "testdb"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {, fprintf(stderr, "%s,", mysql_error(conn));, exit(1);, } if (mysql_query(conn, "SELECT * FROM example_table")) {, fprintf(stderr, "%s,", mysql_error(conn));, exit(1);, } res = mysql_use_result(conn); printf("Database contents:,");, while ((row = mysql_fetch_row(res)) != NULL), printf("%s ,", row[0]); mysql_free_result(res);, mysql_close(conn); return 0;,},
“
在C语言中实现数据库编程,通常需要使用特定的数据库连接库来与数据库进行交互,下面以MySQL数据库为例,展示一个C语言的数据库编程案例,包括如何连接到数据库、执行查询以及处理结果。
1、安装MySQL服务器:确保已经安装了MySQL服务器,并创建了相应的数据库和表,创建一个名为test_db
的数据库和一个包含id
(整数类型)和name
(字符串类型)的users
表。
2、安装MySQL C API库:下载并安装MySQL C API库,以便在C程序中使用。
以下是一个使用C语言连接MySQL数据库、插入数据、查询数据并显示结果的完整示例代码:
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; // 初始化MySQL连接 conn = mysql_init(NULL); if (conn == NULL) { fprintf(stderr, "mysql_init() failed "); return EXIT_FAILURE; } // 连接到数据库 if (mysql_real_connect(conn, "localhost", "root", "password", "test_db", 0, NULL, 0) == NULL) { fprintf(stderr, "%s ", mysql_error(conn)); mysql_close(conn); return EXIT_FAILURE; } // 插入数据 if (mysql_query(conn, "INSERT INTO users(name) VALUES('John Doe')")) { fprintf(stderr, "%s ", mysql_error(conn)); mysql_close(conn); return EXIT_FAILURE; } // 执行查询 if (mysql_query(conn, "SELECT * FROM users")) { fprintf(stderr, "%s ", mysql_error(conn)); mysql_close(conn); return EXIT_FAILURE; } // 获取查询结果 res = mysql_store_result(conn); if (res == NULL) { fprintf(stderr, "%s ", mysql_error(conn)); mysql_close(conn); return EXIT_FAILURE; } // 输出查询结果 int num_fields = mysql_num_fields(res); while ((row = mysql_fetch_row(res)) != NULL) { for (int i = 0; i < num_fields; i++) { printf("%st", row[i] ? row[i] : "NULL"); } printf(" "); } // 释放结果集和关闭连接 mysql_free_result(res); mysql_close(conn); return EXIT_SUCCESS; }
1、初始化连接:使用mysql_init
函数初始化一个MYSQL
类型的指针变量conn
。
2、连接到数据库:使用mysql_real_connect
函数连接到MySQL服务器,需要提供服务器地址、用户名、密码、数据库名等参数,如果连接失败,会打印错误信息并退出程序。
3、插入数据:使用mysql_query
函数执行SQL插入语句,向users
表中插入一条新记录,插入的数据为用户名“John Doe”,如果插入失败,会打印错误信息并退出程序。
4、执行查询:再次使用mysql_query
函数执行SQL查询语句,从users
表中选择所有记录,如果查询失败,会打印错误信息并退出程序。
5、获取查询结果:使用mysql_store_result
函数将查询结果存储在一个MYSQL_RES
类型的变量res
中,如果获取结果失败,会打印错误信息并退出程序。
6、输出查询结果:使用mysql_fetch_row
函数逐行获取查询结果,并打印每行的字段值,如果某个字段值为空,则打印“NULL”。
7、释放资源和关闭连接:使用mysql_free_result
函数释放查询结果占用的内存,然后使用mysql_close
函数关闭与数据库的连接。
将上述代码保存为db_example.c
文件,然后使用以下命令进行编译和运行(假设已经安装了MySQL C API库):
gcc db_example.c -o db_example -lmysqlclient ./db_example
运行程序后,应该会在终端上看到插入的数据被查询并打印出来,在实际使用中,需要根据具体的数据库配置和需求修改代码中的数据库连接参数和SQL语句,为了提高程序的健壮性和安全性,还应该添加更多的错误处理和异常处理机制。