1

WHERE 句を使用して変数で PostgreSQL データベースから値を取得しようとしていますが、エラーが発生します。

クエリは次のとおりです。

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

namewxpython GUI から値を入力する textcontrol です。

名前スキーマが存在しないため、エラーが発生します。

値を取得するための正しい方法は何ですか?

4

2 に答える 2

5

「name.GetValue()」はリテラル文字列です。これをdbに送信します。この文字列は、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

私はあなたが何をしようとしているのか確信が持てませんが、あなたの問題は構文 (AS ではなく INTO の誤用) である可能性があると思います:

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