使用C语言访问MySQL数据 —— 执行SQL语句(2)

本文详细介绍了如何使用C语言执行SQL语句,如UPDATE、DELETE、INSERT,以及如何处理返回数据。重点讲解了mysql_store_result和mysql_use_result两个函数在提取数据时的区别和应用场景,并给出了具体的代码示例。
摘要由CSDN通过智能技术生成

2011-05-15 wcdj

 

(一) 不返回数据的SQL语句 —— UPDATE、DELETE 和 INSERT
(二) 发现插入的内容
(三) 返回数据的语句
(1) 一次提取所有数据的函数
(2) 一次提取一行数据的函数



(三) 返回数据的语句
SQL最常见的用法当然是提取数据而不是插入或更新数据。数据是使用SELECT语句提取的。
说明 :MySQL也支持使用SQL语句SHOW、DESCRIBE和EXPLAIN来返回结果,但我们不会在这里涉及它们。按照惯例,手册中包含了对这些语句的解释。

在C应用程序中提取数据一般需要下面4个步骤
【1】执行查询
【2】提取数据
【3】处理数据
【4】必要的清理工作
使用mysql_query来发送SQL语句,然后使用mysql_store_result或mysql_use_result来提取数据,接着,使用一些列mysql_fetch_row调用来处理数据。最后,使用mysql_free_result释放查询占用的内存资源。
说明 :mysql_use_result和mysql_store_result的区别 :主要在于,你是想一次返回一行数据,还是一次返回所有的结果。当你预计结果集比较小时,后者会更加合适。

(1) 一次提取所有数据的函数
可以使用mysql_store_result在一次调用中从SELECT(或其他返回数据的语句)中提取所有数据:
MYSQL_RES *mysql_store_result( MYSQL *connection );
你需要在成功调用mysql_query之后使用此函数。这个函数将立刻保存在客户端中返回的所有数据。它返回一个指向结果集结构的指针,如果失败则返回NULL。
在mysql_store_result调用成功之后,你需要调用mysql_num_rows来得到返回记录的数目,我们希望这是个正数,但是如果没有返回行,这个值将是0。
my_ulonglong mysql_num_rows( MYSQL_RES *result );
这个函数接受由mysql_store_result返回的结果结构,并返回结果集中的行数。如果mysql_store_result调用成功,mysql_num_rows将始终都是成功的。

注意
如果碰巧使用的是一个特别 的数据集ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值