C++调用MySQL

首先创建一个C++空项目,创建完毕后需要配置下项目。

配置属性,右击项目->属性->


->添加目录为MySql目录下的include->配置完毕后可以开始编写代码了。


用VS编写C++项目连接数据库时提示error LNK2019: 无法解析的外部符号 _mysql_real_connect@32

原因是我的系统是win7x64,MySQL 64位的接口,导致这个问题。

解决方案:

右击项目->属性->配置管理器活动解决方案平台


->下拉选择新建,选择x64即可。



代码部分:

#include <iostream>
#include "winsock.h"
#include "mysql.h"
#include <string>
#pragma comment(lib, "libmySQL.lib")

using namespace std;

int rt;
MYSQL *m_sqlCon = NULL;
MYSQL_RES *res = NULL;
MYSQL_ROW row;


//插入数据 
void insertDB(){
	char tmp[400];
	sprintf( tmp, "insert into %s values(%d,'%s',%f)", "class101",2012, "Kate", 5.0f );//注意红色标签的位置
	rt = mysql_real_query(m_sqlCon, tmp, strlen(tmp));
	cout << tmp << endl;
	cout << rt << endl;
	if(rt){
		cout << "插入数据失败!" <<endl;
		const char *str = mysql_error(m_sqlCon);
		cout << str << endl;
	}else{
		cout <<"插入数据成功!" << endl; 
	}
}

//删除数据
void deleteDB(){
	char tmp[400];
	sprintf( tmp, "delete from %s where id=%d or id=%d", "class101", 2012, 2005 );
	rt = mysql_real_query(m_sqlCon, tmp, strlen(tmp));
	cout << tmp << endl;
	cout << rt << endl;
	if(rt){
		cout << "删除数据失败!" <<endl;
		const char *str = mysql_error(m_sqlCon);
		cout << str << endl;
	}else{
		cout <<"删除数据成功!" << endl; 
	}
}

//更新数据
void updateDB(){
	char tmp[400];
	sprintf( tmp, "update %s set gpa = %f where id = %d", "class101", 4.0f, 33 );
	rt = mysql_real_query(m_sqlCon, tmp, strlen(tmp));
	if( rt ){
		cout << "更新失败!" << endl;
	}else{
		cout << "更新成功!" << endl; 
	}
}

//查询数据
void queryDB(){

	char tmp[400];
	sprintf( tmp, "select * from %s", "class101" );
	rt = mysql_real_query(m_sqlCon, tmp,strlen(tmp));
	cout << tmp << endl;
	res = mysql_store_result(m_sqlCon);
	while( row = mysql_fetch_row(res) ){
		for( int i =0; i<mysql_num_fields(res); i++ ){
			cout << row[i] << "\t";
		}
		cout << endl;
	}

	mysql_free_result(res);
}




int main(){

	m_sqlCon = mysql_init((MYSQL*) 0); 
	if( !mysql_real_connect(m_sqlCon, "localhost", "root", "password","studentdb", 8888, NULL,0 ) ){
		cout << "数据库连接失败" << endl;
	}else{
		cout << "数据库连接成功" << endl;
		//updateDB();
		//insertDB();
		//deleteDB();
		queryDB();
	}
	
	mysql_close(m_sqlCon);
	system( "pause" );
	return 0;
}





  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值