编译环境:myeclipse+cdt+MinGW,注意事项:
1.安装MySQL时,要选上安装开发组件
2.把MySQL安装目录的MySQL Server 5.0\lib\debug下面的两个文件libmysql.lib和libmysql.dll,复制到C++工程项目文件夹里
3.把MySQL安装目录下的include文件夹,复制到C++工程项目文件夹里。
4.如果使用vc6.0,可以在程序中这样使用库文件
#pragma comment(lib,”libmysql.lib”)
但现在用的是cdt+MinGW,必须在eclipse中进行设置
项目属性->C/C++ Build->Settings->Tool Settings->GCC C++ Compiler->Directories->include paths里添加头文件的位置,如: d:\workspace\cproject\include
项目属性->C/C++ Build->Settings->Tool Settings->MinGW C++ Linker->Miscellaneous->other objects里添加 libmysql.lib 文件的位置,如: d:\workspace\cproject\libmysql.lib
载入C++项目
#include
#include
#include “include\mysql.h”
using namespace std;
int main()
{
char *user_name = “root”;
char *user_pw = “root”;
char *db_name = “db_money”;
char *db_host = “localhost”;
int db_port = 3306;
MYSQL obj_sql;
mysql_init( &obj_sql );
int ret = 0;
ret = mysql_options(&obj_sql, MYSQL_SET_CHARSET_NAME, “gb2312″);
//来保证你字码, 要加重记住.没这个设置写到数据mysql里就是乱码了, 汉字就是乱码
if(ret == 0)
{
cout << “mysql_options success!” << endl;
}
else
{
cout<<“set encode failed!”<
return -1;
}
if(mysql_real_connect(&obj_sql,db_host,user_name,user_pw,db_name,db_port,NULL,0))
{
cout<<“The connection is successful!”<
}
else
{
int error_code = 0;
error_code = mysql_errno(&obj_sql);
cout<<“Error code:”<
const char *error_msg = mysql_error(&obj_sql);
cout<
return -1;
}
string sql_cmd;
sql_cmd = “select * from m_place”;
ret = mysql_real_query(&obj_sql,sql_cmd.c_str(),sql_cmd.length());
if(ret!=0)
{
cout<<“fail to query”<
}
MYSQL_RES *res_ptr = NULL;
res_ptr = mysql_store_result(&obj_sql);
if(res_ptr)
{
cout<<“rows number:”<<(unsigned long)mysql_num_rows(res_ptr)<
MYSQL_ROW sqlrow = NULL;
MYSQL_FIELD *fields = NULL;
int num_fields = 0;
num_fields = mysql_num_fields(res_ptr);
fields = mysql_fetch_fields(res_ptr);
for(int ii=0;ii
{
cout<
}
cout<
while(sqlrow = mysql_fetch_row(res_ptr))
{
string str;
for(int ii=0;ii
{
if(sqlrow[ii]!=NULL)
{
str = sqlrow[ii];
cout<
}
else
{
cout<<“NULL\t”;
}
}
cout<
}
}
mysql_free_result(res_ptr);
sql_cmd = “update m_place set fname=’zzz’ where fid=6″;
ret = mysql_real_query(&obj_sql,sql_cmd.c_str(),sql_cmd.length());
if(ret!=0)
{
cout<<“fail to query”<
}
mysql_close(&obj_sql);
}