c++ 操作mysql数据库
1:环境:windows7、vs2010、mysql5.6
2:创建一个c++控制台项目
3:右键项目》属性》配置属性》C/C++》常规
修改【附加包含目录】的值为:D:\Program Files\MySQL\MySQL Server 5.6\include
4:右键项目》属性》配置属性》C/C++》预处理器
修改【预处理器定义】的值为:WIN32;_DEBUG;_CONSOLE
5:右键项目》属性》配置属性》连接器》常规
【附加库目录】:D:\Program Files\MySQL\MySQL Server 5.6\lib\
6:右键项目》属性》配置属性》连接器》输入
【附加依赖项】中添加 libmysql.lib。
7:复制mysql安装目录lib目录下的libmysql.dll到项目目录下的Debug文件下。
8:创建数据库和表
CREATE DATABASE `test` ;
USE `test`;
/*Table structure for table `user_m` */
DROP TABLE IF EXISTS `user_m`;
CREATE TABLE `user_m` (
`id` bigint(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
9:编写代码
#include<winsock2.h>
//定义socket
#include<iostream>
#include"mysql.h"
#include<string>
using namespace std;
MYSQL mysql;//mysql连接
MYSQL_RES * res; //这个结构代表返回行的一个查询结果集
MYSQL_ROW row;//一行记录
bool connectDB();
void resetConn();
void insertDB();
void queryDB();
void removeDB();
void updateDB();
int main() {
if(connectDB()){
cout << "数据库连接成功" << endl;
insertDB();
queryDB();
updateDB();
queryDB();
removeDB();
queryDB();
resetConn();
}else{
cout << "数据库连接失败" << endl;
}
system("pause");
return 0;
}
void insertDB(){
char * sql = "insert into user_m(id,name) values(1111,'aaaaa')";
cout <<"插入语句:" << sql << endl;
if(!mysql_query(&mysql, sql)) {
cout <<"插入成功" << endl;
}else{
cout <<"插入失败" << endl;
}
}
void removeDB(){
char * sql = "delete from user_m";
cout <<"删除语句:" << sql << endl;
if(!mysql_query(&mysql, sql)) {
cout <<"删除成功" << endl;
}else{
cout <<"删除失败" << endl;
}
}
void updateDB(){
char * sql = "update user_m set name='bbbbbbbbbbbbbbb'";
cout <<"更新语句语句:" << sql << endl;
if(!mysql_query(&mysql, sql)) {
cout <<"更新成功" << endl;
}else{
cout <<"更新失败" << endl;
}
}
void queryDB(){
char * sql = "select * from user_m";
cout << "查询sql:" << sql << endl;
if(!mysql_query(&mysql, sql)) { //执行SQL语句
//获取结果集
res=mysql_store_result(&mysql); //获得sql语句结束后返回的结果集
if(res == NULL){
cout << "" << endl;
}
cout << "查询结果:" << endl;
int num = mysql_num_fields(res) ;
while ( row = mysql_fetch_row ( res) ) {
for ( int r = 0 ; r < num ; r ++ ) {
cout << row [r] << ' ';
}
cout << endl ;
}
}else{
cout << "查询失败" << endl;
}
}
bool connectDB(){
mysql_init(&mysql);
return mysql_real_connect(&mysql,"localhost","root","123456","test",3306,0,0);
}
void resetConn(){
//释放资源
mysql_free_result(res);
mysql_close(&mysql);
cout << "释放连接" <<endl;
}
10:输出结果:
数据库连接成功
插入语句:insert into user_m(id,name) values(1111,'aaaaa')
插入成功
查询sql:select * from user_m
查询结果:
1111 aaaaa
更新语句语句:update user_m set name='bbbbbbbbbbbbbbb'
更新成功
查询sql:select * from user_m
查询结果:
1111 bbbbbbbbbbbbbbb
删除语句:delete from user_m
删除成功
查询sql:select * from user_m
查询结果:
释放连接
请按任意键继续. . .