laravel SQLSTATE[42000]:语法错误或访问冲突:1064 默认字符集 utf8 collat​​e utf8_unicode_ci' 在第 1 行

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30826522/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 11:47:23  来源:igfitidea点击:

SQLSTATE[42000]: Syntax error or access violation: 1064 default character set utf8 collate utf8_unicode_ci' at line 1

phpmysqlsql-serverlaravelutf-8

提问by Alex

I'm trying to migrate this code into mysql database but keep getting this error message.

我正在尝试将此代码迁移到 mysql 数据库中,但不断收到此错误消息。

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') default character set utf8 collate utf8_unicode_ci' at line 1

SQLSTATE[42000]:语法错误或访问冲突:1064 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行附近的“) 默认字符集 utf8 collat​​e utf8_unicode_ci” 附近使用正确的语法

public function up()
    {
        Schema::create('user', function(Blueprint $table)
        {
            $table->engine = 'InnoDB';
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
            $table->integer('projectId')->unsigned();
            $table->boolean('isStudent');
            $table->boolean('isCompany');
            $table->String('img');
        });

        Schema::create('user', function($table)
        {
            $table->foreign('projectId')->references('id')->on('project');

        });


    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('user');
    }
}

回答by Chris Burton

For the second instance, use Schema::table

对于第二个实例,使用 Schema::table

For more information, see here: https://stackoverflow.com/a/28007930/938664

有关更多信息,请参见此处:https: //stackoverflow.com/a/28007930/938664

public function up()
    {
        Schema::create('user', function(Blueprint $table)
        {
            $table->engine = 'InnoDB';
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
            $table->integer('projectId')->unsigned();
            $table->boolean('isStudent');
            $table->boolean('isCompany');
            $table->string('img');

            $table->foreign('projectId')->references('id')->on('project')->onDelete('cascade');

        });


    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('user');
    }
}

回答by Ivan Markov

try this Schema::table

试试这个 Schema::table

public function up()
{
    Schema::create('user', function(Blueprint $table)
    {
        $table->engine = 'InnoDB';
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password', 60);
        $table->rememberToken();
        $table->timestamps();
        $table->integer('projectId')->unsigned();
        $table->boolean('isStudent');
        $table->boolean('isCompany');
        $table->String('img');
    });

    Schema::table('user', function($table)
    {
        $table->foreign('projectId')->references('id')->on('project');

    });


}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::drop('user');
} }