【数据库】MySQL的C语言接口学习
0、【初始化】
MYSQL* mysql_init(MYSQL *mysql);
1、【设置连接选项】
int mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg);
2、【连接】
MYSQL* mysql_real_connect(MYSQL *mysql, const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port,
const char *unix_socket,
unsigned long clientflag);
3、【返回上次调用的MySQL函数的错误消息】
unsigned int mysql_errno(MYSQL *mysql)
4、【关闭连接】
void mysql_close(MYSQL *sock);
5、【执行sql语句】
int mysql_query(MYSQL *mysql, const char *q)
6、【查询】
6.1 MYSQL_RES* mysql_use_result(MYSQL *mysql)
逐条进行查询,逐条将结果返回给客户端,直到结果全部返回完毕
eg:
sprintf(sql,“select * from Dcu_Sysparm”);
mysql_query(&mysql,sql);
res = mysql_use_result(&mysql)
row = mysql_fetch_row(res)
typedef struct st_mysql_res {
my_ulonglong row_count;
MYSQL_FIELD *fields;
MYSQL_DATA *data;
MYSQL_ROWS *data_cursor;
unsigned long lengths; / column lengths of current row */
MYSQL handle; / for unbuffered reads */
const struct st_mysql_methods methods;
MYSQL_ROW row; / If unbuffered read /
MYSQL_ROW current_row; / buffer to current row /
MEM_ROOT field_alloc;
unsigned int field_count, current_field;
my_bool eof; / Used by mysql_fetch_row /
/ mysql_stmt_close() had to cancel this result */
my_bool unbuffered_fetch_cancelled;
void *extension;
} MYSQL_RES;
6.2 MYSQL_RES *mysql_store_result(MYSQL *mysql)
7、【检索】
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
检索一个结果集合的下一行。当在mysql_store_result()之后使用时,如果没有更多的行可检索时,mysql_fetch_row()返回NULL。当在mysql_use_result()之后使用时,当没有更多的行可检索时或如果出现一个错误,mysql_fetch_row()返回NULL
8、【释放结果集使用的内存】
void mysql_free_result(MYSQL_RES *result)
9、【检查连接】
int mysql_ping(MYSQL *mysql)
描述:
检查与服务端的连接是否正常。连接断开时,如果自动重新连接功能未被禁用,则尝试重新连接服务器。该函数可被客户端用来检测闲置许久以后,与服务端的连接是否关闭,如有需要,则重新连接。
返回值:
连接正常,返回0;如有错误发生,则返回非0值。返回非0值并不意味着服务器本身关闭掉,也有可能是网络原因导致网络不通。
10、【插入】
10.1 生成sql语句
eg:sprintf(sql,"insert into 表 values(%s…),…);
10.2 检查连接
mysql_ping(&mysql)
如果连接断开,手动关闭非正常连接
mysql_close(&mysql); // 先关闭非正常连接
再次连接
mysql_real_connect
10.3 执行sql
mysql_query(&mysql,sql)
11、【删除】
11.1 生成qsl语句
eg:sprintf(sql,"delete from 表 where 条件%s,值);
11.2 检查连接
mysql_ping(&mysql)
如果连接断开,手动关闭非正常连接
mysql_close(&mysql); // 先关闭非正常连接
再次连接
mysql_real_connect
11.3 执行sql
mysql_query(&mysql,sql)
12、【查找】
12.1 生成sql语句
eg:sprintf(sql,“select * from 表 where 条件”,变量值);
12.2 执行sql,并判断是否成功
mysql_query(&mysql,sql)
12.3 获取查询结果给MYSQL_RES *res;
res = mysql_use_result(&mysql)
12.4 逐条处理
while ((row = mysql_fetch_row(res)) != NULL)
12.5 释放资源
mysql_free_result(res)
13、【更新】
13.1 生成sql语句
sprintf(sql,“update 表 set 变量=值”,值)
13.2 执行sql
mysql_query(&mysql,sql)
14、【创建表】
14.1 生成sql语句
sprintf(sql,"create table if not exists 表(变量 类型 not null primary key, 变量 类型 not null, … ) );
14.2 执行sql
mysql_query(&mysql,sql)
【数据库】MySQL的C语言接口学习相关推荐
- 数据库MYSQL详细教程----千锋学习笔记
目录 目录 -.引言 1.1现有的数据存储方式有哪些? 1.2以上存储方式存在哪些缺点? 二.数据库 2.1概念 2.2数据库的分类 三.数据库管理系统 3.1概念 3.2常见数据库管理系统 四.My ...
- MYSQL的C 语言接口
要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; ...
- 数据库Mysql的基本语言手册
这是看过的课程内容,用他们给的笔记做记录.mysql8.0,视图软件:navicat 1.操作数据库 /*查询所有数据库标准语法:SHOW DATABASES; */ -- 查询所有数据库 SHOW ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- 数据库MYSQL学习系列一
数据库MYSQL学习系列一 一.MYSQL数据库基础 1.1-认识MYSQL 什么是数据库 计算机处理和存储的一切信息都是数据 计算机系统中一种用于存取数据的程序 一种: 计算机系统中有很多种能够存取 ...
- Mysql DBA 高级运维学习之路-mysql数据库入门知识
1.MySQL数据库介绍 MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,在将这些表放在不同的数据库中,而不是将所有数据统一放在一个大仓库里,这样设计增加了MySQL ...
- 数据库mysql性能优化-学习笔记
数据库mysql性能优化 1. 数据库设计范式 2. 常见关系数据库 3. MySQL 的版本 4. mysql存储计划 5 . mysql查询配置 和 设置配置 6 . mysql基本参数 7 .m ...
- 易语言外部数据库MySQL支持库Access数据库Sqlite数据应用
语言虽然有自己的数据库, 但易数据库只是以简单的.类似表格的形式组织数据信息,是一个小型数据库管理系统.有时编程中必须使用其它数据库.易语言支持以ODBC方式和ADO方式操作外部数据库. 一.ODBC ...
- JSP贸易管理系统myeclipse开发mysql数据库struts编程java语言
一.源码特点 JSP贸易管理系统 是一套完善的web设计系统,系统采用struts2框架进行开发一套源码,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库 系统主要采用B/S模 ...
最新文章
- 【直播】耿远昊:Pandas入门讲解(安泰第四届数据科学训练营)
- Ubuntu16.04默认安装了Python2.7和3.5 升级python3.5为3.6
- 2018-1-20:左移和右移运算以及和(无符号右移)的区别以及位运算的小题目...
- C#常用42个操作类
- 常用css样式属性大全(中文注释)
- decimal转换为int_“System.InvalidCastException 指定的转换无效”问题的反思和总结
- matlab 中一些对数组或矩阵的处理
- 布同:pdf自定义分割(断章)
- Bailian2726 采药【模拟】
- Linux命令详解词典高频命令(1)
- python大麦网抢票_抢票攻略-大麦网
- catalina java opts,catalina.bat中适当的位置设置JAVA_OPTS
- 遥感数据存储格式 ----BSQ、 BIL、BIP及相互转换
- 收费外贸企业邮箱的好处?外贸企业该如何选择更好的邮箱服务呢?
- 学校选课系统服务器繁忙,大学选课没选到怎么办
- 没项目实战经验?分享自学练手的软件测试项目实战+数据库+接口,部署超级简单
- 拉格朗日对偶问题的解释
- 题目 1026: [编程入门]数字逆序输出
- 唉,早知如此,何必当初
- c语言创建空顺序表的程序,C语言实现顺序表的创建与增删改查操作
热门文章
- Linux那些事儿 之 戏说USB(16)配置
- db2删除大量数据_Python 连接数据库的多种方法
- Udacity机器人软件工程师课程笔记(十)-ROS-Catkin-包(package)和gazebo
- 【汇总】ElementUI中高频次使用代码片段
- OpenResty中的upstream healthcheck功能沉思录
- ATS 4.2.3隐藏服务器名称及版本号的方法
- 永成科技C++笔试题
- Blender赛车动画制作学习教程 Learn Race Car Animation with Blender
- P1066 2^k进制数 NOIP 2006 提高组 第四题
- C# 篇基础知识11——泛型和集合