2014-01-17 42 views
0

我真的不知道这是MySQL还是PHP问题。在我的服务器上,整数列以字符串形式返回,这是我一直拥有的方式。但是在我的本地服务器上,它们是以整数而不是字符串形式返回的。MySQL PHP整数列不作为字符串返回

我搜索了周围,但除了关于类型转换的注释,没有任何关于某种配置参数。我使用的是laravel 4,它在本地服务器和y服务器上都是相同的代码。

我不想强制转换所有内容,只是喜欢将它作为字符串返回。我在本地使用wamp,在我的服务器和本地之间使用mysql和php的版本,或者非常接近,所以我想它是某种配置的某种地方?

编辑:

代码是直截了当:

$word = Word::first(array('status')); 

echo $word->status === '1' ? 'true' : 'false'; // returns false 
echo $word->status === 1 ? 'true' : 'false'; // returns true 

对于我的MySQL和PHP版本,他们几乎是相同的:

直播:php5.4.20,mysql5.5.34 本地:php5.4.16,mysql5.6.12

+0

请显示您的代码。 –

+0

什么导致问题? – Ryan

+0

您是否使用相同的PHP和MySQL版本,以及以上所有,mysqli扩展(如果使用该版本)? –

回答

1

此外,使用三重设备时有类型检查al运营商===。在任何值比较完成之前,比较两个实体的类型。如果两种类型不匹配,则立即返回

在这种情况下使用==将返回一致的结果,但===通常用于保持数据类型完整性的JavaScript到

3

我还是不完全不清楚的地方这种差异可能是我的环境之间,但在Laraval至少,你可以设置数据库配置的PDO属性:

'mysql' => array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => 'xxxxxxx', 
    'username' => 'xxxxxxx', 
    'password' => 'xxxxxxx', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'options' => array(
     PDO::ATTR_STRINGIFY_FETCHES => true 
    ) 
), 

我至少想这无论其他开发者在本地设置什么,都可以保持一致。