代码:
export async function fetchPaymentMethod(name: string) {
const res = await db.select().from(PaymentMethodsTable).where(sql`lower(${PaymentMethodsTable.name}) = '${name}'`);
return res[0];
}
错误:
bind message supplies 1 parameters, but prepared statement "" requires 0
at async fetchPaymentMethod (./app/lib/data/main.ts:36:17)
说明:
我在 NextJS 项目上使用 Drizzle ORM。由于某种原因,这部分代码似乎会产生错误:
'${name}'
。
但这似乎与 Drizzle ORM 官方文档一致,您可以在这里阅读:https://orm.drizzle.team/docs/select
我正在寻找修复方法、替代实现等等。
变量不应包含在引号中
'
。
应该是这样
sql`lower(${PaymentMethodsTable.name}) = ${name}`
来源:https://github.com/drizzle-team/drizzle-orm/issues/1140#issuecomment-1722587563