SQLSTATE [22007]:无效的日期时间格式:1366不正确的整数值

时间:2018-10-28 12:23:52

标签: php mysql laravel datetime

  

SQLSTATE [22007]:无效的日期时间格式:1366错误的整数值:第1行的'excercise_type'列的'Walking'

 public function up()
{
    Schema::table('diabetic_records', function (Blueprint $table) {
        $table->unsignedInteger('user_id')->nullable()->after('id');
        $table->decimal('glucose_level',5,2)->nullable()->after('user_id');
        $table->string('glucose_level_time')->nullable()->after('glucose_level');
        $table->string('food_name')->nullable()->after('glucose_level_time');
        $table->integer('food_amount')->nullable()->after('food_name');
        $table->string('treatment')->nullable()->after('food_amount');
        $table->string('medication_name')->nullable()->after('treatment');
        $table->decimal('medication_dose',6,2)->nullable()->after('medication_name');
        $table->string('medication_time')->nullable()->after('medication_dose');
        $table->integer('excercise_type')->nullable()->after('medication_time');
        $table->integer('excercise_duration')->nullable()->after('excercise_type');
    });
}

2 个答案:

答案 0 :(得分:0)

数据库中excercise_type的数据类型必须已设置为DATETIME。将其更改为int(11)。并且该值必须是整数,而不是字符串,即walking。那可能会解决您的问题。

答案 1 :(得分:0)

我刚刚问了我哥哥,就找到了解决这个问题的方法。 首先,我的运动数据类型是int,我正在其中输入字符(字符串)。

$table->integer('excercise_type')->nullable()->after('medication_time');

视图:

<select class="custom-select d-block w-100" name="excercise_type" id="excercise_type" required>
              <option selected="selected" >Walking</option>
              <option >Running</option>
              <option >Cycling</option>
              </select>

在错误解析代码之前,我输入的是这样

现在让我们开始解决部分错误

1)首先在视图中的select标签下为选项提供1,2,3之类的值。

<select class="custom-select d-block w-100" name="excercise_type" id="excercise_type" required>
              <option selected="selected" value="1">Walking</option>
              <option value="2">Running</option>
              <option value="3">Cycling</option>
              </select>

2)只需转到您的config文件夹并创建一个名为constant.php的文件。

3)现在返回一个数组,并输入您的输入字段的名称,并为它们分配选项字段的值,就像您在视图侧编写的那样。

<?php
return[
 'EXERCISE_TYPE_WALKING' => '1',
 'EXERCISE_TYPE_RUNNING' => '2',
' EXERCISE_TYPE_CYCLING' => '3',
];

?>

我希望您能从中获得帮助。