PostgreSQL中的SELECT查询

时间:2012-06-19 17:53:35

标签: postgresql wxpython

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

查询是:

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

name是我在wxpython GUI中输入值的textcontrol。

我收到错误,因为名称架构不存在。

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

2 个答案:

答案 0 :(得分: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分配给该行中的第一项。

答案 1 :(得分:1)

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

SELECT age AS x FROM employee WHERE name = ....