我正在尝试使用 WHERE 子句从 PostgreSQL 数据库中的变量中检索值,但出现错误。
查询是:
select age into x from employee where name=name.GetValue()
name
是我从 wxpython GUI 输入值的文本控件。
由于名称架构不存在,我收到错误消息。
检索值的正确方法是什么?
我正在尝试使用 WHERE 子句从 PostgreSQL 数据库中的变量中检索值,但出现错误。
查询是:
select age into x from employee where name=name.GetValue()
name
是我从 wxpython GUI 输入值的文本控件。
由于名称架构不存在,我收到错误消息。
检索值的正确方法是什么?
"name.GetValue()" 是一个文字字符串,你将它发送到你的数据库,它对 wxpython 一无所知,对你程序中的变量一无所知。您需要将该数据的值发送到您的数据库,可能使用绑定参数。就像是:
cur.execute("select age from employee where name=%s", [name.GetValue()])
x = cur.fetchone()[0] # returns a row containing [age] from the db
可能是你所追求的。这将在数据库中创建一个带有占位符的查询,然后将 name.GetValue() 的值绑定到该占位符并执行查询。下一行获取查询结果的第一行并将 x 分配给该行中的第一项。
我不确定您要做什么,但我认为您的问题可能是语法(滥用 INTO 而不是 AS):
SELECT age AS x FROM employee WHERE name = ....