mysql c语言接口。个人封装
来源:互联网 发布:小猪cms生活通o2o源码 编辑:程序博客网 时间:2024/05/16 18:48
个人封装的一些数据库的c语言接口
#include <stdio.h>#include <stdlib.h>#include <stdio.h>#include "mysql.h" //我的机器上该文件在/usr/include/mysql下/***********************************************************//*一下操作的表。表名为 mytable*//************************************************************/#define SELECT_QUERY "select * from mytable where name like '%s'"//#define ALL_QUERY "select * from mytable;"MYSQL mysql, *sock; //定义数据连接句柄/*******************************************函数名: service_sql_init功能: 服务器数据库初始化*********************************************/int service_sql_init(void){ mysql_init(&mysql); /* 连接上数据库 */// if(!(sock = mysql_real_connect(&mysql, "localhost", "root", "my-name-is?lza1205", "rt5350_user_list", 0, NULL, 0))){ if(!(sock = mysql_real_connect(&mysql, "localhost", "root", "123456", "agent_user_list", 0, NULL, 0))){ fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(&mysql)); perror(""); exit(1); } app_printf("mysql init is ok \r\n"); return 0;}/*******************************************函数名: service_sql_select功能: 根据name 从服务器中找出passwd*********************************************/int service_sql_select(char *name, char *passwd){ MYSQL_RES *res; //查询结果集// MYSQL_FIELD *fd; //包含字段信息 MYSQL_ROW row; //存放一行查询结果的字符串数组 char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, SELECT_QUERY, name); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } if(!(res = mysql_store_result(sock))){ fprintf(stderr, "Couldn't get result from %s\n", mysql_error(sock)); return -1; } printf("number of fields returned : %d\n", mysql_num_fields(res)); while((row = mysql_fetch_row(res))){ printf("Ther name #%s 's passwd is: %s\n", (((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]), (((row[1]==NULL)&&(!strlen(row[1]))) ? "NULL" : row[1])); puts( "query ok !\n" ) ; strcpy(passwd, (((row[1]==NULL)&&(!strlen(row[1]))) ? "NULL" : row[1])); mysql_free_result(res); return 0; } mysql_free_result(res); return -1;// mysql_close(sock);}/* 释放结果集 */void __mysql_free_result(void){ MYSQL_RES *res; //查询结果集 do { if (!(res= mysql_store_result(sock))) { return; } mysql_free_result(res); } while (!mysql_next_result(sock));}#define UPDATE_STRING_QUERY "update mytable set %s=\'%s\' where name=\'%s\'"#define UPDATE_INT_QUERY "update mytable set %s=%d where name=\'%s\'"/* 根据名字修改数据库中的某项 */int server_sql_update_string(char *name, char *key, char *val){ char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, UPDATE_STRING_QUERY, key, val, name); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } return 0;}int server_sql_update_int(char *name, char *key, unsigned int val){ char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, UPDATE_INT_QUERY, key, val, name); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } return 0;}/* 下面的函数可以指定某个表格*/#define UPDATE_TABLE_STRING_QUERY "update %s set %s=\'%s\' where code=\'%s\'"#define UPDATE_TABLE_INT_QUERY "update %s set %s=%d where code=\'%s\'"/* table :表名 name: 索引 key: 修改的项 val: 修改值*//* 根据索引修改数据库中的某项 */int sql_table_update_string(char *table, char *name, char *key, char *val){ char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, UPDATE_TABLE_STRING_QUERY, table, key, val, name); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } return 0;}int sql_table_update_int(char *table, char *name, char *key, unsigned int val){ char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, UPDATE_TABLE_INT_QUERY, table, key, val, name); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } return 0;}/* 查询数据库中是否有这个元素 */#define SELECT_STRING_QUERY "select * from %s where %s like \'%s\'"int sql_table_select_string(char *table, char *key, char *val){ char qbuf[160]; //存放查询 sql 语句字符串 MYSQL_RES *res; //查询结果集// MYSQL_FIELD *fd; //包含字段信息 MYSQL_ROW row; //存放一行查询结果的字符串数组 sprintf(qbuf, SELECT_STRING_QUERY, table, key, val); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } if(!(res = mysql_store_result(sock))){ fprintf(stderr, "Couldn't get result from %s\n", mysql_error(sock)); return -1; } printf("number of fields returned : %d\n", mysql_num_fields(res)); while((row = mysql_fetch_row(res))){ mysql_free_result(res); return 0; } mysql_free_result(res); return -1;}/* 往数据库中插入元素 */#define INSERT_STRING_QUERY "insert into %s (%s) values (\'%s\')"int sql_table_insert(char *table, char *key, char *val){ char qbuf[160]; //存放查询 sql 语句字符串 sprintf(qbuf, INSERT_STRING_QUERY, table, key, val); printf("qbuf is %s\n", qbuf); /* 查询数据库 */ if(mysql_query(sock, qbuf)){ fprintf(stderr, "Query failed (%s)\n", mysql_error(sock)); return -1; } return 0;}
0 1
- mysql c语言接口。个人封装
- MYSQL的C 语言接口
- MYSQL的C 语言接口
- C语言封装所有MySql操作
- mysql的C语言接口的使用
- mysql的C语言接口的使用
- MySQL的C语言接口大全
- MySQL的C语言接口大全
- MySQL的C语言API接口
- MySQL C语言接口-预处理语句
- MySQL的C语言接口大全
- MySQL的C语言API接口
- MySQL C 语言应用程序接口开发教程
- MySQL C语言接口-预处理语句
- 总结MySQL 的C语言接口使用
- MySQL C语言接口-预处理语句
- MySQL C语言接口-预处理语句
- MySQL C语言接口-预处理语句
- Linux Shell编程学习笔记(5)
- tomcat session共享
- CentOS7安装rtpbreak出现的依赖问题
- 有关Thinkpad超级管理员使用指纹登陆的问题
- 网站流量统计
- mysql c语言接口。个人封装
- Oracle学习与开发基本概念汇总
- shiro笔记(一)
- 19个必须知道的Visual Studio快捷键
- [Android Studio 权威教程]最实用的快捷键
- 数字签名是什么?https加密通信的理解。
- OpenGL学习笔记(2)--静态链接库和动态链接库的区别
- ZOJ 1586QS Network(kruskal)(基础)
- 1、开启Git之旅—安装配置Git