Laravel在不同操作系统上的问题

时间:2016-02-03 10:32:39

标签: php laravel

例如,我在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。

1 个答案:

答案 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