C 语言连接数据库

来源:互联网 发布:meta分析数据库 编辑:程序博客网 时间:2024/05/16 12:05

准备

C 语言想要连接 mysql 数据库的前提当然是要有 mysql 数据库,所以,如果你还没有安装 mysql 数据库的话请移步至MySQL官网去下载对应的数据库版本,mysql 是完全免费的一款数据库,所以你不用担心破解的问题。

MySQL数据库的安装教程:https://jingyan.baidu.com/article/cd4c2979033a17756f6e6047.html

当然除了这个你还需要安装 C 语言编译器,我用的是 MinGW,你也可以使用 IDE(集成开发环境)。

include 文件

在安装完 MySQL 后你可以到 C:\Program Files\MySQL\MySQL Server 8.0\include 目录下(至于你的目录在哪,我想你应该有能力找到吧~)将所有的文件复制到你的 C 语言工具下的 include 目录中,比如我的是 E:\compile\MinGW\include

编写测试代码

前面的工作已经做的差不多了,是不是很简单呢?下面让我们开始测试一下数据库的链接吧。

/*** @name: mysql_con.c* @author: ultravires**/#include <stdio.h>#include <mysql.h>int main(int argc, char const *argv[]){    printf("引入 mysql.h 没有报错\n");    system("pause");    return 0;}

使用工具 编译->链接 发现改程序已不会报错。但是你可能会发现,该段代码虽然引用了 mysql.h ,但实际上并没有对数据库进行任何操作。是的,这只是一段小小的测试代码,来测试你是否正确的将 include 文件导入。
下面,我们来使用 C 语言对 mysql 数据库进行操作。

C 语言操作数据库

我们还是在之前的测试代码的基础上进行修改。

#include <stdio.h>#include <mysql.h>#define host "localhost"//#define port 3306#define username "username" // 填写你的用户#define password "password" //填写你的密码#define database "test"int main(int argc, char const *argv[]){    MYSQL *mysql;    char *str_sql = "select * from test";    mysql = mysql_init(NULL);    if (NULL == mysql)    {        printf("init failed\n");    }    if (NULL == mysql_real_connect(mysql, host, username, password, database, 3306, NULL, 0))    {        printf("connect failed\n");    }    if (mysql_real_query(mysql, str_sql, strlen(str_sql)) != 0)    {        printf("create failed\n");    }    system("pause");    return 0;}

如果你也使用的是 MinGW 那么可能会报错,具体报错内容如下:

C:\Users\x5556\Desktop\Temp\mysql_con>gcc -o mysql_con mysql_con.c C:\Users\x5556\AppData\Local\Temp\ccj3L2cf.o:mysql_con.c:(.text+0x25): undefined reference to `mysql_init@4'C:\Users\x5556\AppData\Local\Temp\ccj3L2cf.o:mysql_con.c:(.text+0x80): undefined reference to `mysql_real_connect@32'C:\Users\x5556\AppData\Local\Temp\ccj3L2cf.o:mysql_con.c:(.text+0xb4): undefined reference to `mysql_real_query@12'collect2.exe: error: ld returned 1 exit status

至于怎么解决,这里有一博客可以参考,在此我就不抄袭赘述了:MinGW 连接 MySQL 数据库报错问题

如果你的 MinGW 里面没有 reim 就请移步至:https://www.cnblogs.com/wunaozai/p/4528394.html

当然,如果你有耐心的话,这文件都可以在你的 MySQL 目录下找到。如果你是在解决不了的话,完全可以下载 visual c++6.0 来进行。

原创粉丝点击