在C语言中连接MySQL数据库,通常需要使用MySQL提供的C API。以下是使用C语言连接MySQL数据库的基本步骤和示例代码:
步骤 1: 安装MySQL C API
首先,确保你的系统上安装了MySQL数据库,并且安装了MySQL C API库。在大多数Linux发行版中,你可以通过包管理器安装libmysqlclient-dev或mysql-devel包。
步骤 2: 包含头文件
在你的C程序中包含MySQL C API的头文件。
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
步骤 3: 初始化MySQL连接
使用mysql_init函数初始化一个MySQL连接对象。
MYSQL *conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "MySQL initialization failed\n");
exit(1);
}
步骤 4: 连接到MySQL服务器
使用mysql_real_connect函数连接到MySQL服务器。
if (mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0) == NULL) {
fprintf(stderr, "MySQL connection error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
步骤 5: 执行SQL查询
使用mysql_query函数执行SQL查询。
if (mysql_query(conn, "SELECT * FROM table_name")) {
fprintf(stderr, "MySQL query error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
步骤 6: 处理查询结果
使用mysql_store_result和mysql_fetch_row函数处理查询结果。
MYSQL_RES *result = mysql_store_result(conn);
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
printf("%s \t %s \t %s\n", row[0], row[1], row[2]);
}
mysql_free_result(result);
步骤 7: 关闭连接
完成操作后,关闭MySQL连接。
mysql_close(conn);
完整示例代码
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "MySQL initialization failed\n");
exit(1);
}
if (mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0) == NULL) {
fprintf(stderr, "MySQL connection error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
if (mysql_query(conn, "SELECT * FROM table_name")) {
fprintf(stderr, "MySQL query error: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
result = mysql_store_result(conn);
while ((row = mysql_fetch_row(result))) {
printf("%s \t %s \t %s\n", row[0], row[1], row[2]);
}
mysql_free_result(result);
mysql_close(conn);
return 0;
}
编译和链接
编译时,需要链接MySQL C API库:
gcc -o mysql_example mysql_example.c $(mysql_config --cflags --libs)
请确保将mysql_example.c替换为你的源文件名,并且mysql_config命令能够正确执行(这取决于你的MySQL安装和配置)。
以上是一个基本的C语言连接MySQL的示例。在实际应用中,你可能需要处理更复杂的SQL语句、事务、错误处理等。