设为首页 加入收藏

TOP

c++如何连接mysql
2014-11-24 01:25:56 来源: 作者: 【 】 浏览:7
Tags:如何 连接 mysql

编译环境: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);


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇针对源数科技.net笔试题一议 下一篇.net面试遭遇的笔试

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: