用C++操作MYSQL.
作者 斯人 | 发布于 2012 年 4 月 6 日
Linux C

用C连接Mysql分为两步
1.初始化MYSQL 结构
2.调用mysql_real_connect连接数据库

初始化MYSQL结构需要调用mysql_init函数
MYSQL *mysql_init(MYSQL *mysql);
如果传入NULL,则初始化一个新的MYSQL 结构,否则将mysql重新初始化.
函数执行成功返回MYSQL 指针,失败则返回NULL;
接下来就要调用mysql_real_connect来连接数据库.
MYSQL *mysql_real_connect(MYSQL *mysql,const char*host,const char* user,const char *pwd,const char *dbname,int port,char *unix_socket,int client_flag);
mysql是mysql_init初始化的结构体,host,user,pwd,dbname,port分别是数据库地址,数据库用户名,密码,数据库名,端口.
关闭数据库连接需要调用mysql_close;
void mysql_close(MYSQL *mysql);
对于错误处理,mysql提供了两个函数,mysql_errno和mysql_error.
mysql_errno 返回错误代码.
mysql_error 返回错误信息.
int mysql_errno(MYSQL *mysql);
char *mysql_error(MYSQL *mysql);
有了一个连接以后就要执行SQL语句.
int mysql_query(MYSQL *mysql,char*query);
如果执行成功返回0,失败返回非0的值.
query是要执行的sql语句.
返回影响的行数mysql_affetch_rows
在开发过程中,我们经常需要知道 执行的SQL语句影响了多少行.这也可以当做一个判断sql执行成功的手段.
my_unlonglong mysql_affetch_rows(MYSQL *mysql);
在INSERT,DELETE,UPDATE语句之后,该函数就会返回 我们的sql所影响的行数.
返回数据
SELECT 是最常用的功能.用来检索我们需要的数据.
分为四步:
1.用mysql_query发出查询.
2.用mysql_store_result 或mysql_use_result 来检索数据.
MYSQL_RES *mysql_store_result(MYSQL *mysql);执行后会将mysql_query所检索的数据填充到MYSQL_RES这个
结构体中.
ulonglong mysql_num_rows(MYSQL *mysql);该函数用来返回检索到的行数.
3.用mysql_fetch_row处理数据
MYSQL_ROW mysql_fetch_row(MYSQL_RES *res);该函数从MYSQL_RES 结构中获取一行数据.
void mysql_data_seek(MYSQL_RES *res,int offset);该函数用来定位RES中offset行.

4.用mysql_free_result清理
void mysql_free_result(MYSQL_RES *res);该函数用来做一些清理操作.

原文出处:http://www.imsiren.com/archives/510