#include
#include
#include
#include
#include
#include
#include
#pragma comment(lib,"libmysql.lib")//连接MysQL需要的库
using namespace std;
int main()
{
const char user[] = "root"; //username
const char pswd[] = "016457t"; //password
const char host[] = "localhost"; //or"127.0.0.1"
const char table[] ="yggl"; //database
unsigned int port = 3306; //server port
MYSQL myCont; //句柄
MYSQL_RES *result;//理解为一个二维表类似 android中cursor
MYSQL_ROW sql_row; //以行为单位
MYSQL_FIELD *fd; //域:以列为单位
char column[32][32];
int res;
mysql_init(&myCont); //初始化mysql句柄.如果mysql为NULL, 则分配一个.
if(mysql_real_connect(&myCont,host,user,pswd,table,port,NULL,0)) //连接数据库
{
cout<
mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文
res=mysql_query(&myCont,"select * from employees");//勉强理解为查询失败返回true
if(!res) //非res
{
result=mysql_store_result(&myCont);//保存查询到的数据到二维表result
if(result)//判断二维表是否为空
{
int i,j;
cout<
for(i=0;fd=mysql_fetch_field(result);i++)//光标以列为单位;用来从查询结果中取得字段的信息。
//如果没有指定字段偏移量,则提取下一个尚未被 mysql_fetch_field() 取得的字段
{
strcpy(column[i],fd->name); //fd->name 很特殊
}
j=mysql_num_fields(result); //表的字段数或宽度
for(i=0;i
{
cout<<:left>
}
cout<
while(sql_row=mysql_fetch_row(result))//光标以行为单位;获取具体的数据 sql_row为一个一维数组
//mysql_fetch_row与mysql_fetch_field类似即如果没有指定行的偏移量,则提取
//下一个尚未被mysql_fetch_row取得的行
{
for(i=0;i
{
cout<<:left>
}
cout<
}
}
}
else
{
cout<
}
}
else
{
cout<
}
if(result!=NULL) mysql_free_result(result);//释放二维表result中的结果资源
mysql_close(&myCont);//断开与MySQL的连接
return 0;
}