MySQL PHP整数列未作为字符串返回

MySQL PHP整数列未作为字符串返回,php,mysql,pdo,laravel,wamp,Php,Mysql,Pdo,Laravel,Wamp,我真的不知道这是MySQL还是PHP的问题。在我的live server上,整数列作为字符串返回,这是我一直使用的方式。但是,在我的本地服务器上,它们以整数而不是字符串的形式返回 我四处搜索,但除了关于类型转换的注释外,没有任何关于某种配置参数的内容。我使用的是Laravel4,在本地和y live服务器上都使用相同的代码 我不想对所有内容进行类型转换,只希望将其作为字符串返回。我在本地使用wamp,在我的服务器和本地之间使用mysql和php版本,或者非常接近,所以我想这是某种配置 编辑: 代

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

我四处搜索,但除了关于类型转换的注释外,没有任何关于某种配置参数的内容。我使用的是Laravel4,在本地和y live服务器上都使用相同的代码

我不想对所有内容进行类型转换,只希望将其作为字符串返回。我在本地使用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

此外,使用三重相等运算符时也会进行类型检查。在进行任何值比较之前,将比较两个实体的类型。如果这两种类型不匹配,将立即返回false


在这种情况下,使用
=
将返回一致的结果,但在JavaScript中经常使用
=
来维护数据类型的完整性。

此外,使用三重相等运算符
==
时也会进行类型检查。在进行任何值比较之前,将比较两个实体的类型。如果这两种类型不匹配,将立即返回false


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

我仍然不清楚我的环境之间的差异可能在哪里,但至少在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
    )
),

我想这至少有助于保持它的一致性,不管其他开发人员在本地安装了什么。

我仍然不清楚我的环境之间的差异可能在哪里,但至少在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
    )
),
我想这至少有助于保持它的一致性,不管其他开发人员在本地安装了什么。

在Laravel 4中,您可以设置为规范化从数据库返回的值。例如:

//Word.php

class Word extends Eloquent
{

    //...

    public function getStatusAttribute($value)
    {
        return strval($value);
    }
}
在Laravel4中,可以设置为规范化从数据库返回的值。例如:

//Word.php

class Word extends Eloquent
{

    //...

    public function getStatusAttribute($value)
    {
        return strval($value);
    }
}

请显示您的代码。是什么导致了问题?您使用的是相同的PHP和MySQL版本,尤其是mysqli扩展(如果您使用该版本的话)版本吗?请看一看,我认为您的问题与两者之间的PHP版本差异有关environments@Asok好像是我的问题,但它显示了作为php代码启用/禁用的示例。我在live和local上都有相同的代码,所以这对我来说有点奇怪。请展示您的代码。是什么导致了问题?您使用的是相同的PHP和MySQL版本,最重要的是mysqli扩展(如果您使用该版本的话)版本吗?请看,我认为您的问题与两者之间的PHP版本差异有关environments@Asok这似乎是我的问题,但它显示了作为php代码启用/禁用的示例。我在live和local上都有相同的代码,所以这对我来说有点奇怪。