http://www.php.net/manual/zh/mysqli-result.fetch-array.php
返回值
Returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in resultset.
这里返回的是an array of strings,无论表中数据是整数还是浮点数,都是返回string类型的。为什么要这样设计?
这个带来的坏处就是JSON化的时候会都是string类型,导致数据不准确,必须手动去转化数据。
大部分编程语言都直接使用了 mysql 提供的 C 语言库。(也有很多语言使用自己写的库,比如 java,之前的版本适用的 C 语言库,后来的 JDBC 版本改成了用 Java 原生语言)。
在 mysql 的 C 语言库头文件中 mysql.h 定义了 mysql_fetch_row 函数:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
返回的类型是 MYSQL_ROW 类型。这个类型依然在 mysql.h 中定义:
typedef char **MYSQL_ROW; /* return data as array of strings */
后面注释写的很详细了。
由于 C 语言没有关联数组,所以 mysql 的 C 语言库里没有提供 mysql_fetch_array函数,应该是 PHP 在 mysql_fetch_row
的基础上封装的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。