操作系统:win7/64
编译软件:VS2010
数据库:5.7.11
从C语言连接mysql数据库包含两个步骤:
1 初始化连接句柄结构
2 实际创建连接
测试代码1:
#include "stdafx.h"#include /*socket通信,系统头文件*/#include#include#include"mysql.h"
#pragma comment(lib, "libmysql.lib")
intmain()
{
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));elseprintf("连接成功!");
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 /*socket通信,系统头文件*/
#include
#include
#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
调试(逐语句)