我正在尝试在我的Laravel 5.2迁移中插入一个json字符串,我收到一个错误,“语法错误或访问冲突:1064”。
我目前使用MySQL版本5.6.17作为我的数据库。
这是我的迁移文件:
Schema::create('profile', function (Blueprint $table) {
$table->increments('id');
$table->json('settings')->nullable();
$table->timestamps();
});
我可以通过我的MySQL数据库以某种方式实现这一点,还是需要使用MongoDB进行切换?
答案 0 :(得分:4)
从Laravel 5.2开始,$table->json()
方法将尝试在数据库中创建一个实际的JSON字段。但是,在MySQL 5.7.8之前,JSON字段没有添加到MySQL。
因此,如果您使用5.7.8之前的MySQL版本,则需要将其创建为text
字段(这是Laravel< 5.2处理它的方式)。
答案 1 :(得分:2)
您需要使用MySQL 5.7.8或更高版本来使用json
列。
您可以更新MySQL版本,也可以尝试使用text
替代。如果它不能按原样工作,你可以在使用DB之前和之后解码和编码你的json数据。