您的位置:首页 > 编程语言 > C语言/C++

利用MYSQL提供的API操作MYSQL数据库(C语言)

2016-11-05 17:31 495 查看
包含头文件<mysql.h>

初始化:
MYSQL mysql, *sock;   //mysql用于保存连接信息,*sock用户判断是否连上MYSQL服务器
mysql_init(&mysql);

连接MYSQL服务器:
sock = mysql_real_connect(&mysql, "localhost", "root", "xuweitang", "db_test", 0, NULL, 0);

执行插入、更新等操作:
int res;
res = mysql_query(&mysql, "insert into t_student set field=value, ...");

执行查询:
res = mysql_query(&mysql, "select * from t_student");
MYSQL_RES *sqlres;
MYSQL_ROW sqlrow;
sqlres = mysql_store_result(&mysql);    //MYSQL_RES *mysql_store_result(MYSQL *connection);
在成功调用mysql_query之后使用此函数,将立即保存在客户端中返回的所有数据,并将指向此结果集的指针返回。如果失败则返回NULL。
unsigned int field_count, all_field;
all_field = mysql_field_count(&mysql);
while(sqlrow = mysql_fetch_row(sqlres)){    //MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
此函数从上面得到的结果集中提取一行,并把它放在一个行结构中。当数据用完或者出错时返回NULL。
for(field_count = 0; field_count < all_field; field_count++){
cout<<sqlrow[field_count]<<"\t";
}
count<<endl;
}

释放数据集:
mysql_free_result(sqlres);

关闭数据库连接:
mysql_close(&mysql);

编译的时候 g++ sql.cpp -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient -o sql


完整代码

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>

using namespace std;

int main(int argc, char **argv){
MYSQL mysql, *sock;
MYSQL_RES *sqlres;
MYSQL_ROW sqlrow;
int res;
unsigned int field_count,all_field;
mysql_init(&mysql);
sock = mysql_real_connect(&mysql, "localhost", "root", "xuweitang", "db_test", 0, NULL, 0);
if(sock == NULL){
perror("mysql_real_connect error!\n");
mysql_close(&mysql);
exit(1);
}
res = mysql_query(&mysql, "select * from t_student");
if(res != 0){
perror("mysql_query error!\n");
mysql_close(&mysql);
exit(2);
}
sqlres = mysql_store_result(&mysql);
if(sqlres == NULL){
perror("mysql_store_result error\n");
mysql_close(&mysql);
exit(3);
}
all_field = mysql_field_count(&mysql);
while(sqlrow = mysql_fetch_row(sqlres)){
for(field_count = 0;field_count < all_field; field_count++){
//printf("%s\t",sqlrow[field_count]);
cout<<sqlrow[field_count]<<"\t";
}
//printf("\n");
cout<<endl;
}
mysql_free_result(sqlres);
mysql_close(&mysql);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql