一,Mysql驱动动(64位):mysql-connector-c-6.1.2-winx64.msi(这个地方http://download.csdn.net/detail/ld326/7764079可以下载)
二,mysql安装目录下的include文件夹和lib文件:
三,选择属性(下图显示的东西),分别在”c/c++”->常规,”连接器”->常规的“附加包含目录”直接填入“d:\mysqlc\include;d:\mysqlc\lib”(这两个文件夹找一下)。lib文件夹中会有libmysql.dll和libmysql.lib;同一目录会有include文件。
关注问题:
1.头文件(include路径、lib放的目录):
2. lib的加载工具(libmysql.lib)
3.库加入来要连接的目录(lib放的目录【前面那个也可以】)
关注4:
复制“libmysql.dll”到“c:\windows”目录下面
出现问题1:
error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用 |
原因如下,我使用的系统是win7x64,MySQL 64位的lib也是64位的接口。所以解决方法如下:
项目->属性->配置管理器->活动解决方案平台->下拉选新建->出现一个新的对号框->在键入选择新平台中选择X64
(平台是64位的注意了)
四,数据库数据(SQL版)
#
# Source for table "student"
#
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`Id` int(11) NOT NULL auto_increment,
`sname` varchar(54) character set gbk default 'abc',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin;
#
# Data for table "student"
#
INSERT INTO `student` VALUES (1,'abc'),(2,'123');
五,mysql数据库表:
六,连库需要的信息:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);
七,代码:
#include "stdafx.h"
#include "mysql.h"
#include "winsock.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
MYSQL *mysql;
mysql = mysql_init(NULL);
char *sql= "select Id, sname from student";
MYSQL_RES *result;
MYSQL_ROW row;
int r, num;
if(mysql_real_connect(mysql, "localhost", "root", "123456", "mydb", 3306, NULL, 0))
{
mysql_set_character_set(mysql, "gbk");
if(!mysql_query(mysql, sql))
{
result=mysql_store_result(mysql);
if(result==NULL)
return 1;
num = mysql_num_fields(result);
unsigned long *lengths = mysql_fetch_lengths(result);
while(row = mysql_fetch_row(result))
{
for(r = 0; r < num; r++)
{
cout << row[r] <<' ';
}
cout << endl;
}
mysql_free_result(result);
}
mysql_close(mysql);
}
system("pause");
return 0;
}
八,结果