MYSQL 的自我封装
来源:互联网 发布:淘宝推广网站大全 编辑:程序博客网 时间:2024/06/06 08:42
用的是C语言
// gcc 1.cpp -lmysqlclient#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql/mysql.h>#define BEGIN_TRAN "START TRANSACTION"#define SET_TRAN"SET AUTOCOMMIT=0" #define UNSET_TRAN"SET AUTOCOMMIT=1"#define COMMIT_TRAN"COMMIT"#define ROLLBACK_TRAN"ROLLBACK"// 开启事务模式int mysql_BeginTran(MYSQL * mysql){int ret = 0;// 执行书屋开始SQLret = mysql_query(mysql, BEGIN_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}// 设置事务手动提交ret = mysql_query(mysql, SET_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}return ret;}// 事务回滚int mysql_Rollback(MYSQL *mysql){int ret = 0;// 事务回滚操作ret = mysql_query(mysql, ROLLBACK_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}// 恢复事务自动提交标志ret = mysql_query(mysql, UNSET_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}return ret;}// 事务提交int mysql_Commit(MYSQL *mysql){int ret = 0;// 事务提交操作ret = mysql_query(mysql, COMMIT_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}// 恢复事务自动提交标志ret = mysql_query(mysql, UNSET_TRAN);if(ret != 0){printf("func mysql_query() err : %d\n", ret);return ret;}return ret;}MYSQL * init(){// 初始换数据可操作句柄MYSQL * mysql = mysql_init(NULL);if(mysql == NULL){printf("初始化 mysql 指针失败\n");return NULL;}// 链接数据库MYSQL *con = mysql_real_connect(mysql, NULL, "root", "", "my_db", 0 ,NULL, 0);if(con == NULL){printf("链接服务器失败: %s\n", mysql_error(mysql));return NULL;}printf("链接 mysql 服务器...\n");//解决中文乱码mysql_query(mysql, "set names utf8");return con;}int mysql_exec(MYSQL *mysql, const char * sq1){int ret = mysql_query(mysql, sq1);if(ret != 0){printf("操作失败: %s\n", mysql_error(mysql));return -1;}// 下载本地数据// 我使用一次一次下载数据MYSQL_RES * mysql_res = mysql_use_result(mysql);if(mysql_res == NULL){if(mysql_errno == 0) //不是错误{printf("操作成功\n");return 0;}printf("mysql_use_result() error: %s\n", mysql_error(mysql));return -1;}//求数据的 列数unsigned int num = mysql_num_fields(mysql_res);//输出字段int i;MYSQL_FIELD *fields = mysql_fetch_fields(mysql_res);for(i = 0; i<num ; i++){printf("%-8s",fields[i].name);}printf("\n");//输出数据MYSQL_ROW row;while(row = mysql_fetch_row(mysql_res)){for(i = 0; i<num ; i++){printf("%-8s", row[i]);}printf("\n");}return 0;}
阅读全文
0 0
- MYSQL 的自我封装
- mysql 表的自我复制
- Mysql的自我复制的sql语句
- MySQL的C++封装
- MySQL的C++封装
- MySQL的C++封装
- MYSQL简单的封装
- mysql 表数据的自我复制
- Netbeans与MySQL的连接自我总结
- Mysql中表的自我复制(蠕虫复制)
- mysql 表的自我复制或mysql批量制造数据
- mysql的c++封装类
- java的mysql api封装
- PHP中MySQL的封装
- 对mysql的简单封装
- mysql的c++封装类
- MySQL工具类的封装
- mysql 自我总结
- SQL语句范例之授权和表
- dinaji
- wow32注入64位进程
- linux下的git本地仓库
- 软件工程微信平台作业总结
- MYSQL 的自我封装
- 51nod 1515 明辨是非[并查集][set]
- 图论——图的遍历
- drawerlayout侧滑
- POJ
- android开源框架简介
- Material的Tilling跟Offset
- 通知框(违规字符)(angularjs)
- Java数据结构学习笔记