记得更改mysql的登陆密码 password~~~
#include<iostream>
#include<winsock.h>
#include<mysql.h>
#include<string>
#include<iomanip>
using namespace std;
#define STEPBYSTEP
int main(void)
{
cout<<"**********小虾米出品***********"<<endl;
#ifdef STEPBYSTEP
system("pause");
#endif
MYSQL mydata;
//初始化数据库
if(mysql_library_init(0,NULL,NULL)==0)
cout<<"mysql_library_init() succeed"<<endl;
else
{
cout<<"mysql_library_init() failed"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//初始化结构数据
if(mysql_init(&mydata)!=NULL)
cout<<"mysql_init() succeed"<<endl;
else
{
cout<<"mysql_init() failed"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//连接数据库之前,设置额外的连接选项
//可以设置的选项很多,这里设置字符集
if(mysql_options(&mydata, MYSQL_SET_CHARSET_NAME,"gbk")==0)
cout<<"mysql_options() succeed"<<endl;
else
{
cout<<"mysql_options() failed"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//连接数据库
// 更改密码password
if(mysql_real_connect(&mydata,"localhost", "root","password","xiami",3306, NULL, 0)!=NULL)
cout<<"mysql_real_connect() succeed!"<<endl;
else
{
cout<<"mysql_real_connect() failed!"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
string query;
query="create table if not exists fruit";
query+="(";
query+="id int unsigned primary key auto_increment comment 'unique id',";
query+="fruit_name nvarchar(20) not null default '' comment 'name of fruit',";
query+="weight decimal(3,1) not null default 0.0 comment 'weight',";
query+="color varchar(20) not null default '' comment 'color'";
query+=")engine myisam charset utf8;";
if(mysql_query(&mydata, query.c_str())==0)
cout<<"mysql_query() succeed"<<endl;
else
{
cout<<"mysql_query() failed"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//插入数据
query="insert into fruit (fruit_name,weight,color) values ";
query+="('apple', 11.2,'green'),";
query+="('banana', 5.8, 'yellow'),";
query+="('strawberry', 10.5, 'red'),";
query+="('watermelon', 8.6, 'redGreen'),";
query+="('grape', 8.8, 'purple');";
if(mysql_query(&mydata, query.c_str())==0)
cout<<"mysql_query() insert data succeed"<<endl;
else
{
cout<<"mysql_query() insert data failed"<<endl;
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//显示数据
MYSQL_RES * res=NULL;
query="select * from fruit;";
if(mysql_query(&mydata, query.c_str())==0)
{
//取得结果集
res=mysql_store_result(&mydata);
//取得行数
int rowcount=mysql_num_rows(res);
//取得列数
int fieldcount=mysql_num_fields(res);
//获得各字段的名称
MYSQL_FIELD *field=NULL;
for(int i=0;i<fieldcount;i++)
{
field=mysql_fetch_field_direct(res,i);
cout<<setw(15)<<field->name;
}
cout<<endl;
//打印各行
MYSQL_ROW row=NULL;
while(row=mysql_fetch_row(res))
{
for(int i=0;i<fieldcount;i++)
cout<<setw(15)<<row[i];
cout<<endl;
}
}
else
{
cout<<"mysql_query() select data failed"<<endl;
mysql_close(&mydata);
return -1;
}
#ifdef STEPBYSTEP
system("pause");
#endif
//删除表
query="drop table fruit;";
if(mysql_query(&mydata,query.c_str())==0)
cout<<"drop table succeed"<<endl;
else
{
cout<<"drop table failed"<<endl;
mysql_close(&mydata);
return -1;
}
mysql_free_result(res);
mysql_close(&mydata);
mysql_server_end();
return 0;
}
输出: