mysql连接,C++ 连接mysql 初试

// Demo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <string.h>
#include <WinSock2.h>
#include <c:/Program Files/MySQL/MySQL Server 5.5/include/mysql.h>
#pragma (lib,"libmysql.lib")
int _tmain(int argc, _TCHAR* argv[])
{
char * name="root"; //用户名
char * pass="123456";//密码
char * db_name="mysql";
char * host="127.0.0.1";
unsigned int port=3306;
MYSQL objMysql;
mysql_init(&objMysql);
if(mysql_real_connect(&objMysql,host,name,pass,db_name,port,NULL,0)){//创建连接
std::cout<<"The C++ for Mysql Connection is successful!"<<std::endl;
int ret=0;
std::string sql="select Host,User,Password from user";
ret=mysql_real_query(&objMysql,sql.c_str(),sql.length());//执行一条语句
if(ret){
std::cout<<"fail to load data"<<std::endl;
}
MYSQL_RES *result=NULL;
result=mysql_store_result(&objMysql);//返回结果集
if(result){
std::cout<<"Result size :"<<mysql_num_rows(result)<<std::endl;//返回结果集行数
MYSQL_ROW sqlrow=NULL;
MYSQL_FIELD *fields=NULL;
unsigned int num_fields=0;
num_fields=mysql_num_fields(result);//返回查询结果集的字段数量
fields=mysql_fetch_fields(result);//返回查询结果集所有字段
for(unsigned int i=0;i<num_fields;i++){
std::cout<<fields.name<<"\t";//打印字段信息
}
std::cout<<std::endl;
while(sqlrow=mysql_fetch_row(result)){//循环遍历结果集
std::string str;
for(int j=0;j<num_fields;j++){
if(sqlrow[j]){
str=sqlrow[j];
std::cout<<str<<"\t";
}else
{
std::cout<<"\t";
}
}
std::cout<<std::endl;
}
}
mysql_free_result(result);//释放结果集内存
}else{
int error_code=0;
error_code=mysql_errno(&objMysql);//返回错误代码
std::cout<<"Mysql Connect Error Code :"<<error_code<<std::endl;
const char * error_msg=mysql_error(&objMysql);//返回错误消息
std::cout<<"Mysql Connect Error Message :"<<error_msg<<std::endl;
}
mysql_close(&objMysql);
system("pause");
return 0;
}
Tags:  mysql连接

延伸阅读

最新评论

发表评论