准备
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 来进行。