平台:windows c/c++
编译器:vs2017
项目设置:项目属性页:
1.C/C++ ->常规->附加包含目录->C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include 这里是我的目录,具体找自己安装目录下的include
2.链接器->常规->附加库目录->C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib
3.链接器->输入->附加依赖项->libmysql.lib
配置完成。
测试代码:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdlib.h>
#include "mysql.h"
#include <string>
using namespace std;
int main(int argc,char* argv[])
{
MYSQL mysql; //必备的数据结构
//初始化数据结构
MYSQL* sqlinit=mysql_init(&mysql);
if (sqlinit == NULL)
{
cout << "mysql init failed!" << endl;
return -1;
}
//初始化数据库 int STDCALL mysql_server_init(int argc, char **argv, char **groups);
if (0 == mysql_server_init(argc, argv, 0))
{
cout << "mysql_server_init succeed!" << endl;
}
else
{
cout << "mysql_server_init failed!" << endl;
return -2;
}
//设置连接选项 避免中文无法处理
// mysql_option 枚举类型
if (0 == mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"))
{
cout << "mysql_options succeed!" << endl;
}
else
{
cout << "mysql_option failed!" << endl;
return -3;
}
//连接数据库
if (NULL != mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 3306, NULL, 0))
{
cout << "mysql connect succeed" << endl;
}
else
{
cout << "mysql connect failed" << endl;
return -4;
}
//strsql 用于储存Sql语句
string strsql;
strsql = "CREATE TABLE IF NOT EXISTS `testtable2`(";
strsql += "`runoob_id` INT UNSIGNED AUTO_INCREMENT,";
strsql += "`runoob_title` VARCHAR(100) NOT NULL,";
strsql += "`runoob_author` VARCHAR(40) NOT NULL,";
strsql += "`submission_date` DATE,";
strsql += "PRIMARY KEY(`runoob_id`)";
strsql += ")ENGINE = InnoDB DEFAULT CHARSET = utf8; ";
if (0 == mysql_query(&mysql, strsql.c_str()))
{
cout << "mysql_query succeed!" << endl;
}
else
{
cout << "mysql_query failed!" << endl;
return -5;
}
//向表中插入数据
char buf[1024];
//strsql = "INSERT INTO testtable2 (runoob_id, runoob_title,runoob_author,submission_date)VALUES(0, 'MYSQL', 'Orcale', '2017-6-9'); ";
sprintf(buf, "INSERT INTO testtable2 (runoob_id, runoob_title,runoob_author,submission_date)VALUES(%d, 'MYSQL', 'Orcale', '2017-6-9'); ", 0);
if (0 == mysql_query(&mysql, buf))
{
cout << "mysql_query succeed!" << endl;
}
else
{
cout << "mysql_query failed!" << endl;
return -5;
}
//查询
string query;
MYSQL_RES* result = NULL;
query = "select *from testtable1 where runoob_id=1";
if (0 == mysql_query(&mysql, query.c_str()))
{
cout << "mysql_query succeed!" << endl;
result=mysql_store_result(&mysql);
//取得并打印行数
my_ulonglong rowcount = mysql_num_rows(result);
cout << "row count: " << rowcount << endl;
//取得各个字段
unsigned int fieldcount = mysql_field_count(&mysql);
for (unsigned int i = 0; i < fieldcount; i++)
{
MYSQL_FIELD* field = mysql_fetch_field_direct(result, i);
cout << field->name << i << endl;
}
}
else
{
cout << "mysql_query failed" << endl;
mysql_close(&mysql);
return -6;
}
//清理
mysql_free_result(result);
mysql_close(&mysql);
mysql_server_end();
system("pause");
return 0;
}