首页 >后端开发 >Golang >为什么我的 PostgreSQL 查询返回'输入末尾的语法错误”?

为什么我的 PostgreSQL 查询返回'输入末尾的语法错误”?

DDD
DDD原创
2024-12-26 02:56:10451浏览

Why Does My PostgreSQL Query Return a

理解 PostgreSQL 中的“Syntax error at end of input”错误

在 PostgreSQL 中,错误消息“pq: F:”扫描.l" M:"输入末尾语法错误" S:"错误" C:"42601" P:"50" R:"scanner_yyerror" L:"993"" 表示 SQL 语句语法有问题。

原因:

具体问题在这种情况下,可能是由于准备好的语句中使用了参数占位符。

MySQL 使用 ?作为参数占位符,而 PostgreSQL 使用 $1、$2 等。在提供的 SQL 语句中:

db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)

问号 (?) 用作电子邮件地址的占位符。但是,PostgreSQL 无法识别此语法。

解决方案:

要解决此问题,只需将问号替换为 $1:

db.Query(`SELECT COUNT(*) as N FROM email WHERE address = `, email)

建议:

为了避免将来出现此类错误,始终使用特定数据库系统支持的正确参数占位符。

以上是为什么我的 PostgreSQL 查询返回'输入末尾的语法错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn