1

我正在尝试使用 WHERE 子句从 PostgreSQL 数据库中的变量中检索值,但出现错误。

查询是:

select age into x from employee where name=name.GetValue()

name是我从 wxpython GUI 输入值的文本控件。

由于名称架构不存在,我收到错误消息。

检索值的正确方法是什么?

4

2 回答 2

5

"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 分配给该行中的第一项。

于 2012-06-19T18:09:14.863 回答
1

我不确定您要做什么,但我认为您的问题可能是语法(滥用 INTO 而不是 AS):

SELECT age AS x FROM employee WHERE name = ....
于 2012-06-19T17:55:31.493 回答