例如,我在Windows上使用Laravel,PHP 5.5.24,现在我已经使用PHP 5.6.11切换到Ubuntu并且发生了一些奇怪的事情。
例如:
$spec = $advert->Category->specifications->where('groupid', 2);
字符串看起来很好,但在Ubuntu上,所有where
子句参数必须是以下字符串:
$spec = $advert->Category->specifications->where('groupid', '2');
我不确定它是PHP的错误,还是MySql,甚至是我的IDE。
答案 0 :(得分:3)
这与您的MYSQL驱动程序有关。在XAMPP或WAMP上的窗口上,它使用Mysql Native驱动程序从数据库返回记录的本机类型(例如,如果将'id'设置为整数,则返回'id'的整数)。
然而,在Ubuntu上,当你第一次安装PHP时,它使用mysql驱动程序而不是mysqlnd,它将整数类型转换为字符串。
我在这里问了同样的问题 - Why PHP considers MySQL INT columns as strings?
这也是一个很好的讨论 - how do I return integer and numeric columns from MySQL