【问题标题】:Postgresql return zero-length delimited errorPostgresql 返回零长度分隔错误
【发布时间】:2020-05-25 18:22:38
【问题描述】:

我正在尝试为 Laravel 框架与 PostgreSQL 12 建立连接。我使用 Laravel 5.8 版本。当我尝试使用 Laravel 的 Auth::attempt() 方法登录用户时,出现以下错误:

Syntax error: 7 ERROR: zero-length delimited identifier at or near \"\"\"\"\nLINE 1: select * from \"\".\"users\" where \"email\" = $1 limit 1\

我正在使用 Laravel 的默认数据库表来存储用户数据。 Eveyrthing 在使用 MySQL 时运行良好,但在使用 PgSQL 时我不明白它的原因。任何帮助将不胜感激。

【问题讨论】:

  • 模式名称丢失:您有类似from ""."users" where ...
  • 我才意识到。谢谢!

标签: php laravel postgresql eloquent psql


【解决方案1】:

双引号构成分隔标识符。它不应该是如下所示的空字符串。

错误:

select * from ""."users" where "email" = $email limit 1

正确:

使用数据库名称

select * from "$databaseName"."users" where "email" = $email limit 1

(或) 尝试不使用数据库名称

select * from "users" where "email" = $email limit 1

User::where('email',$email)->first();

检查 .env 和 database.php 设置是否更新为正确的数据库 名字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多