C++ 操作 MySQL

使用VS2008如IDE, 准备操作:


1. 项目属性  C++ 其他包括文件夹 为 mysql 安装文件夹的include
如:"C:Program Files (x86)MySQLMySQL Server 5.6include"

2. 链接器  常规  附加库文件夹  路径为 mysql 安装文件夹的lib
"C:Program Files (x86)MySQLMySQL Server 5.6lib"

3. 链接器  输入  附加依赖项  路径为 mysql 为 libmysql.lib 所在文件夹,
如 "C:Program Files (x86)MySQLMySQL Server 5.6liblibmysql.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<<"	";
	}
	cout << endl;
	

	//行指针 遍历行
	MYSQL_ROW row =NULL;
	while (NULL != (row = mysql_fetch_row(result)) )
	{
		for(int i=0; i<feildcount;i++)
		{
			cout<<row[i]<<"	";
		}
		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


原文地址:https://www.cnblogs.com/zfyouxi/p/5032206.html