// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
#include "winsock.h"
#include "mysql.h"
struct Database_Param
{
char *host,*user,*passwd,*unix_socket,*server_version,*host_info,*info;
};
struct Data_Param
{
char *tab_name,*insert_val;
};
class CDatabase
{
public:
BOOL UnLockTable(); //解锁
BOOL LockTable(char* TableName,char* PRIORITY); //加锁
int Reload(); //重新登陆,非零时返回错误信息
char* GetState(); //服务器状态
char* GetServerInfo(); //服务器信息
int GetProtocolInfo(); //协议信息
char* GetHostInfo(); //主机信息
char * GetClientInfo(); //客户机信息
char* GetFieldName(int FieldNum); //字段名
BOOL IsEnd(); //是否最后
int DropDB(char *db); //删除数据库,非零时返回错误信息
void SeekData(int offset); //查找指定数据
int CreateDB(char *db); //创建数据库,非零时返回错误信息
void FreeRecord(); //释放结果集
unsigned int GetFieldNum(); //得到字段数
BOOL ConnectDB(Database_Param *p); //连接数据库
MYSQL_ROW GetRecord(); //得到结果(一个记录)
my_ulonglong GetRowNum(); //得到记录数
BOOL SelectDB(Data_Param *para); //选择数据库
BOOL UpdateRecord(Data_Param *para); //更新记录
BOOL SelectRecord(Data_Param *para); //选择记录
BOOL InsertRecord(Data_Param *para); //插入记录
BOOL DelRecord(Data_Param *para); //删除记录
BOOL SelectAll(Data_Param *para); //选择所有记录
char * OutErrors(); //输出错误信息
CDatabase(); //初始化数据库
virtual ~CDatabase(); //关闭数据库连接
private:
MYSQL mysql; //数据库连接句柄
MYSQL_RES *query; //结果集
MYSQL_ROW row; //记录集
MYSQL_FIELD *field; //字段信息(结构体)
BOOL FindSave(char *str); //查找并保存结果集
};
class test
{
public:
char * myname;
test();
virtual ~test();
private:
char * mytel;
};
test::test
{
};
//CDatabase::CDatabase()
//{
//mysql_init(&mysql);
//};
char aszflds[25][25];
int i,j,k,l,x;
MYSQL mysql;
MYSQL_RES * res;
MYSQL_FIELD * field;
MYSQL_ROW row;
char szsql[100],szdb[100],sztable[100];
int SQL_Query(char* sqltext);
int main(int argc, char* argv[])
{
strcpy(szdb,"test");
strcpy(sztable,"maintable");
if (mysql_init(&mysql))
{
cout << "mysql init ok!" << endl;
}
else
{
cout << "mysql init fail" << endl;
return false;
}
if(mysql_real_connect(&mysql,"localhost","root","1111",szdb,3306,NULL,0))
{
cout << "mysql connect is sucess!" << endl;
i = mysql_select_db(&mysql,"test");
if (i>=0 )
{
cout << 1 << endl;
SQL_Query("select * from maintable");
/*
cout << "mysql select db is sucess!" << endl;
strcpy(szsql , "select * from ");
strcat(szsql,sztable);
cout << szsql << endl;
if (!mysql_query(&mysql,"select * from maintable"))
{
res = mysql_store_result(&mysql);
i = (int)mysql_num_rows(res) ;
l=1;
cout << "Query: nNumber of records found:" << i << endl;
for (x=0; field=mysql_fetch_field(res);x++)
strcpy(aszflds[x],field->name);
while (row = mysql_fetch_row(res))
{
j=mysql_num_fields(res);
cout << "Record #:-" << l++ <<endl;
for (k=0;k<j;k++)
cout << "Fld #:"<< k+1 << " " << aszflds[k] << " " << (((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k]) <<endl;
cout << "==============================" << endl;
}
}
*/
strcpy(szsql,"insert into ");
strcat(szsql,sztable);
//query = "insert into t1(id, name) values(3, 'kunp')";
strcat(szsql,"(id,testno,testseq,testother) values (3,'20050103',1,'this is no3 test!')" );
cout << szsql << endl;
//if (!mysql_query(&mysql,szsql))
//{
// SQL_Query(mysql,"select * from maintest");
//}
}
}
return 0;
}
int SQL_Query(char* sqltext)
{
if (!mysql_query(&mysql,"select * from maintable"))
{
res = mysql_store_result(&mysql);
i = (int)mysql_num_rows(res) ;
l=1;
cout << "Query: nNumber of records found:" << i << endl;
for (x=0; field=mysql_fetch_field(res);x++)
strcpy(aszflds[x],field->name);
while (row = mysql_fetch_row(res))
{
j=mysql_num_fields(res);
cout << "Record #:-" << l++ <<endl;
for (k=0;k<j;k++)
cout << "Fld #:"<< k+1 << " " << aszflds[k] << " " << (((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k]) <<endl;
cout << "==============================" << endl;
}
mysql_free_result(res);
return 1;
} else return 0;
}
http://www.phpe.net/mysql_manual/