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

来源:互联网 发布:网络理财产品排行榜 编辑:程序博客网 时间:2024/05/20 05:27
包含头文件<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之后使用此函数,将立即保存在客户端中返回的所有数据,并将指向此结果集的指针返回。如果失败则返回NULLunsigned 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);    此函数从上面得到的结果集中提取一行,并把它放在一个行结构中。当数据用完或者出错时返回NULLfor(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;}
0 0
原创粉丝点击