保存在数据库中的错误号码 - Yii框架

时间:2014-05-08 13:16:09

标签: php post yii isset

这可能听起来有点愚蠢,但我需要一些帮助。我应该通过访问以下链接保存数据库中的一些记录:

http://localhost/whatsapp/index.php?r=users/create&mobile=012345678900

这就是我在控制器中所拥有的:

public function actionCreate()
    {
        $model=new Users;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);
        echo "hello"." hii";
        if(!isset($_POST['number']))
        {
            echo "aho";
            $model->number="012345678900";
            //$model->number=$_POST['number'];
            echo 'bye';
            //$model->attributes=$_POST['Users'];
            if($model->save())
            echo "done";
                return "Doneeee";
        }

    }

除列号外,数据保存正确。总是保存一定数量,如下所示: 2147483647

任何dea为什么会发生这种情况?!

3 个答案:

答案 0 :(得分:2)

当数据类型不是bigint并且col的长度小于你输入的数字长度时,Sql引擎会生成这种数字。

答案 1 :(得分:2)

用户表格中,将数字的类型更改为varchar ,并将长度设置为15或20或任何您想要的内容。

尝试此查询

ALTER TABLE`user` CHANGE`number``number`VARCHAR(15)

Note:-您遇到此问题是因为您已将数字字段设置为int类型。并且int类型可以容纳的最大值是您在数据库中获得的值。因此将其更改为varchar类型将解决问题。

答案 2 :(得分:0)

以0开头的数字作为数字的OCTAL表示

http://en.wikipedia.org/wiki/Octal

这里发生的事情是,当表示为“正常”或“十进制”数字时,八进制数变大,并且在所提供的空间中溢出(类似于机动车辆中的里程计数器)。因此,当数字被保存时,它会被转换为数字,然后溢出。

正确的处理是将此视为字符串,如@Let me see

所示