一般错误:Laravel 5.6.33 中的“)”附近的 1:语法错误“)

Posted

技术标签:

【中文标题】一般错误:Laravel 5.6.33 中的“)”附近的 1:语法错误“)【英文标题】:General error: 1 near ")": syntax error") in Laravel 5.6.33 【发布时间】:2019-02-03 00:49:40 【问题描述】:

我对 Laravel 迁移有一些问题。 我的文章和标签之间有多对多的关系。 'article_tag' 迁移:

Schema::create('article_tag', function (Blueprint $table) 
    $table->integer('article_id')->unsigned()->index();
    $table->foreign('article_id')->refrences('id')->on('tags')->onDelete('cascade')->onUpdate('cascade');
    $table->integer('tag_id')->unsigned()->index();
    $table->foreign('tag_id')->refrences('id')->on('articles')->onDelete('cascade')->onUpdate('cascade');
);

“标签”迁移:

Schema::create('tags', function (Blueprint $table) 
    $table->increments('id');
    $table->string('name');
    $table->timestamps();
);

'文章迁移:

Schema::create('articles', function (Blueprint $table) 
    $table->increments('id');
    $table->string('title');
    $table->text('body');
    $table->timestamps();
);

我的控制台日志:

Illuminate\Database\QueryException : SQLSTATE[HY000]: 一般错误: 1 靠近 ")": 语法错误 (SQL: create table "article_tag" (“article_id”整数不为空,“tag_id”整数不为空,外国 键(“article_id”)在更新时删除级联时引用“标签”() 级联,外键(“tag_id”)在删除时引用“文章”() 级联更新级联)

异常跟踪:

1 PDOException::("SQLSTATE[HY000]: 一般错误: 1 near ")": 语法错误”) /home/user/Desktop/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:452

2 PDO::prepare("创建表 "article_tag" ("article_id" 整数 非空,“tag_id”整数非空,外键(“article_id”) 在更新级联时删除级联引用“标签”(),外国 key("tag_id") 在更新时删除级联引用 "articles"() 级联)”) /home/user/Desktop/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:452

最好的,Javad

【问题讨论】:

您是否直接从您的代码中复制了示例,您的参考文献中有错字,对于您的外国人。 【参考方案1】:

您的迁移中有一个拼写错误。你说的是refrences->(),但应该是references->()

Schema::create('article_tag', function (Blueprint $table) 
        $table->integer('article_id')->unsigned()->index();
// in here
        $table->foreign('article_id')->refrences('id')->on('tags')->onDelete('cascade')->onUpdate('cascade');
        $table->integer('tag_id')->unsigned()->index();
// and in here too
        $table->foreign('tag_id')->refrences('id')->on('articles')->onDelete('cascade')->onUpdate('cascade');
    );

【讨论】:

别抱歉,每个人都会犯这些错误。

以上是关于一般错误:Laravel 5.6.33 中的“)”附近的 1:语法错误“)的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE [HY000] Laravel 8 中的外键约束格式错误

Laravel 5.8 错误 SQLSTATE[HY000]: 一般错误: 1005 uuid

一般错误:1005 Can't create table ,在 laravel 中外键约束形成错误

Laravel 一般错误:1005 无法创建表

Laravel 5.8:一般错误:1005 无法创建表

Laravel / MySQL 错误:SQLSTATE[HY000]:一般错误:1835 格式错误的通信数据包