目录
- C语言连接Mysql
-
- [下载 mysql 开发库](#下载 mysql 开发库)
- 方法介绍
- 完整代码
C语言连接Mysql
下载 mysql 开发库
方法一:使用 apt直接下载
bash
sudo apt-get install libmysqlclient-dev
下载完后,可以查看库文件位置
bash
dpkg -S libmysqlclient.so |grep libmysqlclient-dev
头文件是在默认头文件位置
bash
ls /usr/include/
# 输出如下
方法二:也可以自己手动去官网下载: 库下载
安装过程略,可以参考使用apt索引包下载
方法介绍
mysql_init()
初始化一个连接实例
mysql_real_connect()
连接到mysql服务器
mysql_query()
执行查询命令
mysql_store_result()
获取查询结果
mysql_num_fields()
获取字段个数
mysql_fetch_fields()
获取字段名称列表
mysql_fetch_row()
获取每一行的数据
mysql_free_result()
释放结果内存
mysql_close()
关闭 mysql 连接
完整代码
c
#include <mysql/mysql.h>
#include <stdio.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
const char *server = "localhost"; // 数据库服务器地址
const char *user = "root"; // 数据库用户名
const char *password = "baseword"; // 数据库密码
const char *database = "base001"; // 数据库名
conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "mysql_init() failed\n");
return 1;
}
// 连接到MySQL服务器
if (mysql_real_connect(conn, server, user, password, database, 0, NULL, 0) == NULL) {
fprintf(stderr, "mysql_real_connect() failed\n");
mysql_close(conn);
return 1;
}
// 执行SQL查询
if (mysql_query(conn, "SELECT * FROM users")) {
fprintf(stderr, "mysql_query() failed\n");
mysql_close(conn);
return 1;
}
// 获取查询结果
res = mysql_store_result(conn);
if (res == NULL) {
fprintf(stderr, "mysql_store_result() failed\n");
mysql_close(conn);
return 1;
}
printf("Table: your_table\n");
//打印列名
int fieldnum = mysql_num_fields(res);
MYSQL_FIELD *field = mysql_fetch_fields(res);
for (int i = 0; i < fieldnum; i++)
{
printf("%s\t",field[i].name);
}
printf("\n");
// 输出结果集的每一行数据
while ((row = mysql_fetch_row(res)) != NULL) {
//printf("%s %s %s", row[0],row[1]); // 假设第一列是我们要打印的列,根据实际情况调整索引
for (int i = 0; i < mysql_num_fields(res); i++) {
// row[i] 指向当前列的数据,如果数据为 NULL,则 row[i] 也为 NULL
printf("%s\t", row[i] ? row[i] : "NULL");
}
printf("\n"); // 打印完一行后换行
}
mysql_free_result(res); // 释放结果集内存
mysql_close(conn); // 关闭数据库连接
return 0;
}