C语言连接mysql数据库

操作系统:win7/64

编译软件:VS2010

数据库:5.7.11

 

从C语言连接mysql数据库包含两个步骤:

1 初始化连接句柄结构

2 实际创建连接

 

测试代码1:

#include "stdafx.h"
#include <WinSock2.h> /*socket通信,系统头文件*/
#include <windows.h>
#include <stdio.h>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib")
int main()
{
    MYSQL *conn;
    char *server = "localhost";
    char *user = "root";
    char *password = "root";//“******”为你设置的密码
    char *database = "hyx";
    conn = mysql_init(NULL);
    if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
        printf("连接失败:%s", mysql_error(conn));
    else
        printf("连接成功!");
    getchar();
    return 0;
}

测试结果1:

 

遇到的问题:

error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_query@8,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 _mysql_close@4,该符号在函数 _main 中被引用

解决方法:

原因如下,我使用的系统是win7x64,MySQL 64位的lib也是64位的接口。所以解决方法如下:
.项目->属性->配置管理器
活动解决方案平台,下拉选新建,出现一个新的对号框,在键入选择新平台中选择X64

重新编译  成功~~~

测试代码2:

#include "stdafx.h"
#include <WinSock2.h> /*socket通信,系统头文件*/
#include <windows.h>
#include <stdio.h>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib")
int main()
{
    MYSQL my_connection;
    char *server = "localhost";
    char *user = "root";
    char *password = "root";//“******”为你设置的密码
    char *database = "hyx";
    mysql_init(&my_connection);
    if(!mysql_real_connect(&my_connection, server, user, password, database, 0, NULL, 0))
        printf("连接失败:%sn", mysql_error(&my_connection));
    else
        printf("连接成功!");
    getchar();
    return 0;
}

测试结果2:

 

问题:测试代码1与测试代码2只有标黑的两行不同,但是一个连接成功了,一个连接失败了,这是什么原因?

 

VS中快捷键
F12 转到定义处
ctrl+"-" 从定义处返回
F7 编译
ctrl+F5  运行
F5 执行到下一个断点
F10 调试(逐过程)
F11  调试(逐语句)

 



 

posted @ 2016-03-09 20:14  adacn  阅读(8751)  评论(2编辑  收藏  举报