c,#include,#includeint main() {, MYSQL conn;, conn = mysql_init(NULL);, if (!mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0)) {, fprintf(stderr, "%s,", mysql_error(conn));, return 1;, }, printf("Connected to database successfully!,");, mysql_close(conn);, return 0;,},
“在C语言中添加数据库连接是一项关键任务,它允许程序与数据库进行交互,执行各种数据库操作,以下是使用MySQL Connector/C库来实现这一功能的详细步骤及示例代码:
准备工作
1、安装MySQL服务器:你需要从MySQL官网(https://dev.mysql.com/downloads/mysql/)下载并安装MySQL服务器。
2、安装MySQL Connector/C库:同样地,从MySQL官网(https://dev.mysql.com/downloads/connector/c/)下载并安装MySQL Connector/C库。
包含必要的头文件
在你的C代码中,需要包含MySQL Connector/C库提供的头文件,以及标准输入输出库的头文件:
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h>
这些头文件包含了你后续操作所需的所有函数和数据结构定义。
初始化MySQL环境
在使用MySQL库之前,需要初始化MySQL环境,这可以通过调用mysql_library_init
函数来完成:
if (mysql_library_init(0, NULL, NULL)) { fprintf(stderr, "could not initialize MySQL library "); exit(1); }
创建并配置MySQL连接
创建一个MySQL连接对象,并配置连接参数,这包括设置数据库服务器地址、用户名、密码和数据库名称等:
MYSQL conn; conn = mysql_init(NULL); if (conn == NULL) { fprintf(stderr, "mysql_init() failed "); exit(1); }
建立数据库连接
使用mysql_real_connect
函数来建立数据库连接,你需要提供数据库服务器地址、用户名、密码、数据库名称等参数:
if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) { fprintf(stderr, "mysql_real_connect() failed "); mysql_close(conn); exit(1); }
在上面的代码中,将localhost
替换为你的数据库服务器地址,将username
、password
和database_name
替换为你的数据库用户名、密码和数据库名称。
执行SQL查询
建立连接后,你可以使用mysql_query
函数来执行SQL查询,执行一个简单的SELECT查询:
if (mysql_query(conn, "SELECT FROM table_name")) { fprintf(stderr, "SELECT FROM table_name failed. Error: %s ", mysql_error(conn)); mysql_close(conn); exit(1); }
处理查询结果
查询成功后,你可以使用mysql_store_result
函数来存储查询结果,并使用mysql_fetch_row
函数来遍历结果集:
MYSQL_RES result = mysql_store_result(conn); if (result == NULL) { fprintf(stderr, "mysql_store_result() failed. Error: %s ", mysql_error(conn)); mysql_close(conn); exit(1); } int num_fields = mysql_num_fields(result); MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { for(int i = 0; i < num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf(" "); } mysql_free_result(result);
关闭数据库连接
完成所有操作后,别忘了关闭数据库连接,并清理MySQL环境:
mysql_close(conn); mysql_library_end();
完整示例代码
以下是一个完整的示例代码,展示了如何在C语言中使用MySQL Connector/C库来连接数据库、执行查询并处理结果:
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> int main() { // 初始化MySQL库 if (mysql_library_init(0, NULL, NULL)) { fprintf(stderr, "could not initialize MySQL library "); exit(1); } // 创建MySQL连接 MYSQL conn; conn = mysql_init(NULL); if (conn == NULL) { fprintf(stderr, "mysql_init() failed "); exit(1); } // 建立数据库连接 if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) { fprintf(stderr, "mysql_real_connect() failed "); mysql_close(conn); exit(1); } // 执行SQL查询 if (mysql_query(conn, "SELECT FROM table_name")) { fprintf(stderr, "SELECT FROM table_name failed. Error: %s ", mysql_error(conn)); mysql_close(conn); exit(1); } // 处理查询结果 MYSQL_RES result = mysql_store_result(conn); if (result == NULL) { fprintf(stderr, "mysql_store_result() failed. Error: %s ", mysql_error(conn)); mysql_close(conn); exit(1); } int num_fields = mysql_num_fields(result); MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { for(int i = 0; i < num_fields; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf(" "); } mysql_free_result(result); // 关闭数据库连接 mysql_close(conn); mysql_library_end(); return 0; }
将上述代码中的localhost
、username
、password
和database_name
替换为实际的数据库连接信息即可运行。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1616456.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复