vc++连接mysql数据库,并对数据库中的表进行查询、插入、删除、更新等

来源:互联网 发布:淘宝加钱换购退货 编辑:程序博客网 时间:2024/04/30 11:52
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h> 
#include <iostream>
#pragma comment(lib,"libmysql.lib")
using namespace std;


MYSQL myCont;;     //mysql连接
char query[1024];   //查询语句


void QueryAll()
{   
int t;
MYSQL_RES *recordSet;              //这个结构代表返回行的一个查询结果集
MYSQL_ROW row;                      //一个行数据的类型安全(type-safe)的表示
strcpy(query,"select * from run"); 
t=mysql_real_query(&myCont,query,(unsigned int)strlen(query));//执行由query指向的sql查询,查询成功,返回0 
if(t)
{
printf("异常1: %s\n",mysql_error(&myCont));
}

recordSet = mysql_store_result(&myCont); //读取客户查询的所有结果后,把结果放到mysql_res
long  count_res = mysql_num_rows(recordSet); //返回结果集合中行的数量   
printf( "%ld records found.\n" ,count_res);   
long count_field = mysql_num_fields(recordSet);//返回结果集合中列的数量 
MYSQL_FIELD * field; //字段信息结构
for(int i=0;i<count_field;i++) 

field = mysql_fetch_field_direct(recordSet, i);//获得每一列的字段名
printf("%s\t", field->name);

printf("\n");  
while(row=mysql_fetch_row(recordSet))  //检索结果集合中的下一行
{                              
for(t=0;t<mysql_num_fields(recordSet);t++)   
{
printf("%s\t",row[t]); //获取每一行中各列的字段值
}
printf("\n");  
}
mysql_free_result(recordSet);//释放结果集
}




 bool InsertUser()
{
int ret;
strcpy(query,"insert into user values('1','koko','keke')");
//strcpy(query,order);
ret=mysql_real_query(&myCont,query,(unsigned int)strlen(query)); 
if(ret)
{
printf("异常2: %s\n",mysql_error(&myCont));
return false;
}
//else  printf("[%s] 构建成功 \n",query);
return true;
}


bool UpdateUser()
{
int ret;
strcpy(query,"update user set upass='weizengke' where uname='koko'"); 
ret=mysql_real_query(&myCont,query,(unsigned int)strlen(query)); 
if(ret)  
{
printf("异常3: %s\n",mysql_error(&myCont));
return false;
}//else  printf("[%s] 构建成功 \n",query);
return true;
}
bool deleteUser()
{
int ret;
strcpy(query,"delete from user where  upass='keke'"); 
ret=mysql_real_query(&myCont,query,(unsigned int)strlen(query)); 
if(ret)  
{
printf("异常: %s\n",mysql_error(&myCont));
return false;
}
//else  printf("[%s] 构建成功 \n",query);
return true;
}




void main()
{
const char user[] = "root";         //username
const char pswd[] = "root";         //password
const char host[] = "localhost";    //or"127.0.0.1"
const char db[] = "tictoc";        //database
unsigned int port = 3306;           //server port        




mysql_init(&myCont);//初始化适合mysql_real_connect的一个MYSQL对象
if(mysql_real_connect(&myCont,host,user,pswd,db,port,NULL,0))//建立连接
{
cout<<"connect succeed!"<<endl;
mysql_query(&myCont, "SET NAMES GBK");                 //设置编码格式,否则在cmd下无法显示中文
}
 else
   {
cout<<"connect failed!"<<endl;
  }
///查询操作
QueryAll();
//插入
// printf("-----------------\ndo inser\n");
char list[1024];
scanf("%s",list);
printf("");
InsertUser();
QueryAll();



//修改
// printf("-----------------\ndo update\n");
/*UpdateUser();
QueryAll();


InsertUser();
QueryAll();
//删除
// printf("-----------------\ndo del\n");
deleteUser();
QueryAll();*/


mysql_close(&myCont);//断开连接
}