【数据库】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)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值