mysql_store_result和mysql_use_result

来源:互联网 发布:亿网科技域名 编辑:程序博客网 时间:2024/05/16 04:25
同:两者均是连接外部程序处理参数,并返回结果集。
异:从服务器上检索结果集的行,前者只是启动一个逐行的检索,后者从服务器检索结果集的时候就提取了行,并且为之分配内存,存储到客户机中。
操作处理:
mysql_store_result:获取全部数据集保存到本机,因此在随后的mysql_fetch_row()就再也不会返回错误,当返回NULL的时候表示已经到达数据集的末端。
mysql_use_result:本身不检索任何行,而只是启动一个逐行的检索,就是说必须对每一行调用mysql_fetch_row()自己来完成。因此当出现NULL是可能是到达数据集末端,也可能是表示在与服务器通信的时候发生错误,可通过mysql_errno()和
mysql_error()将两者区分开来。
适用:
mysql_store_result:较高的内存和处理需求,因为在客户机上维护整个结果集,所以分配的内存和创建数据结构的耗费是非常巨大的。
mysql_use_result:有着较低的内存需求,每次只需给处理的单行分配足够的内存空间,把较大的内存加载到了服务器上。
注意:
mysql_store_result:获取到结果就与服务器脱离关系,因此可以再查询检索。
mysql_use_result:必须到达末端才能进行再次查询。
因此使用那种检索方式还得根据服务器和客户机来综合考虑。
0 0