您的位置:首页 > 编程语言 > C语言/C++

【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 c语言 sql