【SQL】MySQL的C语言接口学习
2017-09-07 18:22
381 查看
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* 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语言接口使用
- 【SQL优化】MYSQL优化学习小结
- MySQL学习笔记---基础概念和一些基础SQL语句(一)
- 3.笔记 MySQL学习——简单执行SQL语句
- MySQL的C语言接口大全
- SQL基础学习(四)- Mysql 查看信息的命令
- MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南
- 15.笔记MySQL学习——服务器SQL模式
- go-mysql: database/sql 接口适配
- go-sql-driver/mysql 学习
- MySQL学习笔记(5)--基本的SQL语句
- mysql学习(7):常用的sql语句
- MySQL学习笔记---基础概念和一些基础SQL语句(一)
- MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南
- php学习笔记(二)php与mysql连接与用php发送SQL查询
- 学习 MySQL-DBA常用SQL汇总
- mysql三学习sql声明学习
- Mysql++学习(五)------专用SQL结构
- SQL左连接攻略--Mysql学习心得(符合sql标准)
- SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装