在我的Mac中
$result = DB::select("select count(*) as count from table where id=1");
return Response::json($result[0]->count);
我在js中得到0
// PHP 5.4.24
0
但是当我将我的代码发布到Centos中时,我在js中得到“0”甚至“”0“”
// PHP 5.5.14
"0" //(sometimes ""0"")
它们完全相同。怎么了?
修改
我发现另一个问题我认为是相关的
// mac, PHP 5.4.24, Lavavel 4.2
Auth::user()->is_admin === 1 // true
// centos, PHP 5.5.14, Lavavel 4.2
Auth::user()->is_admin === 1 // false
Auth::user()->is_admin == 1 // true
is_admin的列类型是int(11)
答案 0 :(得分:1)
在返回JSON以获得预期类型时,您可能希望执行数字检查。
return Response::json($result[0]->count, 200, [], JSON_NUMERIC_CHECK);
答案 1 :(得分:0)
我自己解决了。因为我使用的是php-mysql而不是php-mysqlnd。 php-mysqlnd从mysql返回本机数据类型,但php-mysql返回一些数据类型,如int / float as string。
所以我
`yum remove php-mysql'
然后
'yum install php-mysqlnd'
一切都很顺利!