C语言连接MySQL数据库

1 配置

win7 32bit,mysql5.5,vs2008

  1. vc路径设置,工具 -> 选项 -> 项目和解决方案 -> VC++ 路径,Platform选择Win32,然后
    Include files中添加 D:\Program Files\MySQL\MySQL Connector.C 6.1\include
    Library files中添加 D:\Program Files\MySQL\MySQL Connector.C 6.1\lib
    注意:高版本的VS如2013已经将该设置迁移到项目属性中;以上路径根据安装位置做相应修改。
  2. 附加依赖项设置,项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项,编辑加入libmysql.lib。(也可直接在代码中加入#pragma comment(lib, "libmysql.lib")语句)
  3. libmysql.dll设置,MySQL安装后该文件在D:\Program Files\MySQL\MySQL Connector.C 6.1\lib路径下,由于该路径并没有加到环境变量Path中,因此程序运行会出现“找不到libmysql.dll”的错误。可将该路径加到环境变量Path中,也可将libmysql.dll文件拷贝到程序路径下或Path中的某个路径,而通常是将libmysql.dll文件拷贝到系统路径C:\Windows\System32中。
    关于以上路径的说明见我的另一篇博文

2 函数介绍

下表列出了本文用到的mysql函数

函数说明
mysql_initmysql初始化
mysql_real_connect连接mysql
mysql_query执行SQL语句
mysql_store_result保存查询的结果
mysql_fetch_row取出结果中的一行
mysql_free_result释放结果集
mysql_close关闭连接

3 示例程序

#include <stdio.h>
#include "mysql.h"

#pragma comment(lib, "libmysql.lib")

int main(void)
{ 
    const char* host = "127.0.0.1";
    const char* user = "root";
    const char* passwd = "******";
    const char* db = "sakila";
    unsigned int port = 3306;
    const char * query = "select * from country";   // 查询语句

    MYSQL mysql;        // 声明MySQL的句柄
    MYSQL_RES* result;  // 结果集
    MYSQL_ROW row;      // 结果集中的一行

    mysql_init(&mysql); // MySQL初始化
    if (!mysql_real_connect(&mysql, host, user, passwd, db, port, NULL, 0)) // 连接MySQL
    {
        fprintf(stderr, "连接失败(%s)\n", mysql_error(&mysql));
        return 1;
    }
    else
    {
        printf("连接成功\n");
    }

    if (mysql_query(&mysql, query)) // 执行SQL语句
    {
        fprintf(stderr, "查询失败!\n");
        mysql_close(&mysql);        // 关闭连接
        return 1;
    }
    else
    {
        if ((result = mysql_store_result(&mysql)) == NULL)  // 保存查询的结果
        {
            fprintf(stderr, "保存结果集失败!\n");
            mysql_close(&mysql);        // 关闭连接
            return 1;
        }
        else
        {
            printf("id\tcity\n==\t========\n");
            while ((row = mysql_fetch_row(result))) // 取出结果中的一行
            {
                printf("%s\t%s\n", row[0], row[1]);
            }
        }
    }

    mysql_free_result(result);      // 释放结果集
    mysql_close(&mysql);            // 关闭连接
    printf("连接关闭\n");
    system("pause");
    return 0;
}

运行结果
运行结果

本文原文链接 http://blog.csdn.net/yanglx2022/article/details/46565697

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值