这是要保存在 mysql 1 - 4.9 上的啥数据类型
Posted
技术标签:
【中文标题】这是要保存在 mysql 1 - 4.9 上的啥数据类型【英文标题】:what datatype is this to save on mysql 1 - 4.9这是要保存在 mysql 1 - 4.9 上的什么数据类型 【发布时间】:2016-12-16 06:19:10 【问题描述】:我想在我的 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】:问题是您的十进制定义没有指定小数点。 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
【讨论】:
以上是关于这是要保存在 mysql 1 - 4.9 上的啥数据类型的主要内容,如果未能解决你的问题,请参考以下文章
React-Native AsyncStorage 使用 iPhone 模拟器将数据保存在磁盘上的啥位置?
mysql的datetime对应java的啥类型,我用date读不出来