【发布时间】:2018-08-20 18:31:12
【问题描述】:
我正在使用 pg.8000 (Postgres) 并尝试运行以下 SELECT 查询
cursor.execute(
"""
SELECT orders.name, orders.order_price, orders.selling_price, orders.earnings
FROM member, orders
WHERE member.id=orders.member_id
AND member.name = %s
""",
member_username
)
member.username 是一个字符串。
但我收到以下错误。
pg8000.core.ProgrammingError: ('ERROR', 'ERROR', '42P18', 'could not determine data type of parameter $2', 'postgres.c', '1350', 'exec_parse_message', '', '')
但是,当我使用 GUI 工具运行相同的查询时,一切都运行良好并且我得到了结果。有什么问题?
【问题讨论】:
-
member_username中有什么内容? -
我正在传递的字符串...
-
我的意思是它可能是空的或不正确的字符串。你检查了吗?
-
是的,我已经检查过了,没关系...
-
我发现它即将解析那个字符串......所以我找到了一个解决方案,但仍然对它发生的原因感到困惑。这里的情况是:
cursor.execute( """ SELECT orders.name, orders.order_price, orders.selling_price, orders.earnings FROM member, orders WHERE member.id = orders.member_id AND member.name = '{}' """.format(member_username) )
标签: postgresql pg8000