http://www.php.net/manual/zh/mysqli-result.fetch-array.php返回值ReturnsanarrayofstringsthatcorrespondstothefetchedroworNULLiftherearenomorerowsinresultset.这里返回的是anarrayofstrings,无论表中数据是整数还是浮点数,都是返回string类型的。为什么要这样设计?这个带来的坏处就是JSON化的时候会都是string类型,导致数据不准确,必须手动去转化数据。
2 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
你们大概都冤枉PHP了。大部分编程语言都直接使用了mysql提供的C语言库。(也有很多语言使用自己写的库,比如java,之前的版本适用的C语言库,后来的JDBC版本改成了用Java原生语言)。在mysql的C语言库头文件中mysql.h定义了mysql_fetch_row函数:MYSQL_ROWSTDCALLmysql_fetch_row(MYSQL_RES*result);返回的类型是MYSQL_ROW类型。这个类型依然在mysql.h中定义:typedefchar**MYSQL_ROW;/*returndataasarrayofstrings*/后面注释写的很详细了。由于C语言没有关联数组,所以mysql的C语言库里没有提供mysql_fetch_array函数,应该是PHP在mysql_fetch_row的基础上封装的。
蛊毒传说
TA贡献1895条经验 获得超3个赞
mysql返回的数据确实默认都是字符串,但是用json_encode函数将number转换后的json数据依然是带引号的,比如自己手动创建的数组$array=array('name'=>'jack','age'=>23);用json_encode($array)得到的是:{'name':'jack','age':'23'},所以前端js将json解析出来以后'23'还是字符串。
添加回答
举报
0/150
提交
取消