这个数据类型是什么,以保存在mysql 1 - 4.9

时间:2016-08-10 03:16:49

标签: php mysql laravel laravel-5 sqldatatypes

我想在我的mysql数据库中保存范围从1到4.9的样式等级,请使用我应该使用的数据类型?当我将其保存为十进制(11,0)

时,我不断收到此错误

helpers.php第747行中的ErrorException: 方法App \ Wasamar \ Rating :: __ toString()必须返回字符串值

我的代码

$allInputs = Input::all();
    $catalogueStyleId = Input::get('catalogueStyleId');
    $userId = Crypt::decrypt( Input::get('user') );
    $rating = Input::get('rating');


    $countUserStyleRating = count( Rating::where('catalogue_style_id',$catalogueStyleId)->where('user_id','=', $userId)->first() );

    if ( $countUserStyleRating == 0 ) {
        # add new rating data

        $rating = new Rating;
        $rating->user_id = $userId;
        $rating->catalogue_style_id = $catalogueStyleId;
        $rating->catalogue_style_rating = $rating;
        $rating->save();

        echo "Your rating has been noted thank you";
    }

1 个答案:

答案 0 :(得分:3)

问题是你的小数定义没有指定小数点。 DECIMAL(11,0)表示您希望存储小数点左边的11位数字,而不是之后的数字。

如果要存储0.1到4.9,则需要将小数定义为DECIMAL(2,1)。 2表示要存储两个总数,1表示您想要小数点右边的1个数字。

来自文档:

  

DECIMAL 列的声明语法为 DECIMAL(M,D)。该   MySQL 5.7中参数的值范围如下:

     

M 是最大位数(精度)。它有一系列的   1至65岁。

     

D 是小数点右边的位数(   规模)。它的范围为0到30,且不得大于 M

MySQL Documentation