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
的基础上封装的。