数据库存的是int型,返回string型
如我在m层读取数据test表数据$query = $this->db->get('test');
return $query->result_array();
在c层打印这个数组id为int型,php也会自动转为string,
请问该如何解决
Hex 发表于 2016-8-19 14:09
这个函数第二个参数,可以控制,你可以看看 PHP 手册。
老大,这样还是不行啊,假如可以加上JSON_NUMERIC_CHECK转成int型的话,还有布尔型,浮点型,治标不治本啊,现在我能想到的方法是在helpers写个方法把从数据库读出来的数组传进去,判断哪些字段需要转换类型,拆开转换类型后在组装上传回来,然后再json_encode,可是这样就很浪费效率啊 还是直接上代码吧
$result = $query->result_array();
$list = array();
foreach($result as $value) {
$list[] = array(
'id' => intval($value['id']),
...
);
}
return $list;
a513515125 发表于 2016-8-20 17:06
老大,这样还是不行啊,假如可以加上JSON_NUMERIC_CHECK转成int型的话,还有布尔型,浮点型,治标不治本啊 ...
你要是精确控制只能这样,其实不用太担心效率。。。瓶颈一般是在你从数据库取数据,而不是在转换上。
还有,你可以看看为什么数据库取出来的类型不对,找找根本原因。 什么意思?你想做什么?PHP 是弱类型语言。。。 你是要输出的时候强制转为int么? liugoe 发表于 2016-8-10 13:23
你是要输出的时候强制转为int么?
是的 Hex 发表于 2016-8-10 11:21
什么意思?你想做什么?PHP 是弱类型语言。。。
想输出的时候强制转为int,只能把数组循环拆开一个个转了,做接口,安卓那边需要转换数据类型 Hex 发表于 2016-8-10 11:21
什么意思?你想做什么?PHP 是弱类型语言。。。
就是数据库里存的数据是int的型拿出来就是int型,varchar就是string,但是php读出来的数据都会强制转换为string a513515125 发表于 2016-8-10 17:21
就是数据库里存的数据是int的型拿出来就是int型,varchar就是string,但是php读出来的数据都会强制转换为s ...
你要输转 json 的话json_encode() 可以帮你把数字字符串转成 int Hex 发表于 2016-8-11 13:34
你要输转 json 的话json_encode() 可以帮你把数字字符串转成 int
json_encode()怎么转
json_encode($abc)
页:
[1]
2