使用VS2008如IDE, 准备操作:
1. 项目属性 C++ 其他包括文件夹 为 mysql 安装文件夹的include
如:"C:\Program Files (x86)\MySQL\MySQL Server 5.6\include"
2. 链接器 常规 附加库文件夹 路径为 mysql 安装文件夹的lib
"C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib"
3. 链接器 输入 附加依赖项 路径为 mysql 为 libmysql.lib 所在文件夹,
如 "C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\libmysql.lib"
注:这里的文件文件夹路径由于有空格。所以一定要用 " " 包括起来!
!!
4. 将 mysql 文件夹下的 libmysql.dll 文件复制到 debug 文件夹下,这个非常重要!!。!
代码:
#include <iostream>
#include <winsock2.h>
#include <string>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib");
using namespace std;
int main()
{
MYSQL mysql;
mysql_init(&mysql); // 初始化
MYSQL *ConnStatus = mysql_real_connect(&mysql,"localhost","root","","sky",3306,0,0);
if (ConnStatus == NULL)
{
// 连接失败
int i = mysql_errno(&mysql);
string strError= mysql_error(&mysql);
cout <<"Error info: "<<strError<<endl;
return 0;
}
cout<<"Mysql Connected..."<<endl;
string strsql;
MYSQL_RES *result=NULL; // 数据结果集
// 插入操作
strsql = "insert into t1 values(2,'lyb')";
if(0 == mysql_query(&mysql,strsql.c_str()))
{
cout<<"insert ok"<<endl;
}
else
{
cout<<"insert error"<<endl;
return 0;
}
//查询
strsql = "select * from t1";
if(0 == mysql_query(&mysql,strsql.c_str()))
{
cout<<"select ok"<<endl;
result = mysql_store_result(&mysql); // 获取结果放到 result中
}
else
{
cout<<"select error"<<endl;
return 0;
}
//返回记录集总数
int rowcount = mysql_num_rows(result);
cout<<"row count :"<<rowcount<<endl;
//取得表的字段数组 数量
unsigned int feildcount = mysql_num_fields(result);
cout<<"feild count: " << feildcount <<endl;
cout << endl;
//字段指针 遍历字段
MYSQL_FIELD *feild = NULL;
for(unsigned int i = 0; i<feildcount;i++)
{
feild = mysql_fetch_field_direct(result,i);
cout<<feild->name<<"\t";
}
cout << endl;
//行指针 遍历行
MYSQL_ROW row =NULL;
while (NULL != (row = mysql_fetch_row(result)) )
{
for(int i=0; i<feildcount;i++)
{
cout<<row[i]<<"\t";
}
cout<<endl;
}
cout<<endl;
//释放结果集 关闭数据库
mysql_free_result(result);
mysql_close(&mysql);
mysql_library_end();
return 0;
}
//官方文档參考
//http://dev.mysql.com/doc/refman/5.1/zh/apis.html
执行结果
官方文件参考 http://dev.mysql.com/doc/refman/5.1/zh/apis.html