mysql_num_fields与mysql_field_count的区别
来源:互联网 发布:知行学院教务管理系统 编辑:程序博客网 时间:2024/06/05 20:15
mysql_num_fields和mysql_field_count都是获取结果中列的个数,但是这两个函数在使用的时候是存在区别的。
先看一段代码(上篇文章提供的数据库):
执行结果是:
--insert------------------------
insert----count_fields is 0
insert---store return null
---select-----------
select---count_fields is 2
select---num_fields is 2
select---num_rows is 7
---select 0------
select 0---count_fields is 2
select 0---num_fields is 2
select 0---num_rows is 0
显然,当执行insert语句的时候,是没有结果返回的,因此列的个数为0,且mysql_store_result返回NULL。因此可以通过mysql_field_count()是否返回0来判断是否有结果返回,而不需要执行mysql_store_result来判断是否返回了NULL。我想,mysql_field_count()的效率肯定要比mysql_store_result()高。
在这种情况下,由于没有返回结果,因此mysql_store_result()返回NULL,也就是得不到res指针,于是mysql_num_fields()函数就无法执行,缺少必要的参数。
当执行第一条select语句的时候,返回了结果,因此mysql_field_count()和mysql_num_fields()都返回了正确的列的个数2,mysql_num_rows()返回了记录的条数7.
当执行第二条select语句,由于表中没有 id = 0 的记录,因此mysql_num_rows返回了0表示记录数为0,但是,我们发现mysql_store_result()并没有返回NULL,mysql_num_fields()和mysql_field_count()还是返回了2.
因此我们可以得出这样的结论:
执行结果有三种情况,第一是执行insert、update和delete这样的语句的时候,是不会有任何内容返回,因此mysql_store_result()会返回一个NULL。第二,执行select或show这样的语句时,一定会有内容返回,可以取得列信息,但是记录可以为0,也可以不为0。这就像一个表,表头一定存在,但是表中可以没有数据。
另外:
mysql_affected_rows()函数的作用是,当执行update insert delete 时,返回影响的行数。
mysql中文文档:
http://dev.mysql.com/doc/refman/5.1/zh/apis.html
- mysql_num_fields与mysql_field_count的区别
- mysql_num_fields与mysql_field_count的区别
- PHP mysql_num_fields() 函数
- &&与&,||与| 的区别
- &与&& ,|与||的区别
- -> 与 .的区别,&与*
- &与&& ,|与||的区别
- 注释区别???/与//的区别
- 与的区别与作用
- 与的区别与作用
- 与的区别与作用
- “//”与“\\”还有“/”与“\" 的区别
- java &与&& |与||的区别
- java &与&& |与||的区别
- 与的区别
- 与的区别
- 与 的区别
- null与""的区别
- 10年 ZZUPC校赛第二题 无线网络覆盖 (╮(╯▽╰)╭)
- 何时才能走出这个怪圈?
- delphi Ansistring wideString shortstring
- 反向生成UML图
- 图像增强(空域)
- mysql_num_fields与mysql_field_count的区别
- 仿Google地图Tooltip
- 链表逆序
- 重温emacs快捷键
- Another File Integrity Checker 2.16
- 查找字符串最后一个相匹配的串,不存在返回NULL, 存在返回出现的位置指针
- 树形下拉框
- 树形下拉框
- 使用PostThreadMessage向工作线程发送消息