我有MySql Cloud Hosting,
表(成员) - 字段(id,名称,余额)
当我在Windows机器上使用Laravel访问时,它们(id,balance)以Int,
的形式返回但
当我在Linux机器上使用Laravel访问时,所有字段都以字符串形式返回。
因此,此问题会导致计算操作错误,因为它们读为String。 没有$ casts可以解决这个问题的任何方法吗?
答案 0 :(得分:0)
似乎问题在于MySQL驱动程序。 Laravel默认使用预准备语句。您有两种方法:调整Linux设置或在代码中使用转换(强制转换或(int))。
请查看ticked answer here。您需要调整PDO::ATTR_EMULATE_PREPARES
答案 1 :(得分:0)
通过它的声音,这是与MySQL以及你正在使用的驱动程序相关的其他答案。
除此之外,这是一个非问题,PHP是一种动态类型语言,因此返回一个字符串没有区别,除非您通过is_int()
运行该值,这将明确检查它确实是一个整数。如果您这样做,请不要使用is_number()
代替处理所有类型。