C 语言连接数据库

准备

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值