一般错误: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