0

Python とデータベースの初心者

ユーザー名の列を含むデータベース テーブルをセットアップしました。ユーザーが raw_input を介してテーブルを検索し、そのユーザー名に関連付けられている値のみを返すことができるようにしたいと考えています。

たとえば、ユーザーが Bill を検索すると、指定された列で並べ替えられた Bill のレコードのみが表示されます。

これは私がこれまでに持っているものですが、明らかに非常に間違っています。誰かが助けてくれることを願っています:

def find_me(db, column_name):
    db = sqlite3.connect(db)
    cursor = db.cursor()
    name = raw_input("Please enter your username: ")
    cursor.execute("SELECT name FROM username WHERE name=?", (name,))
    cursor.execute("SELECT * FROM username ORDER BY "+column_name+" ASC")
    name = cursor.fetchone()
    next = cursor.fetchone()

前もって感謝します

4

1 に答える 1

1

次のようなクエリを作成します。

cursor.execute("SELECT name FROM username WHERE name=?", (name,))

これはクエリ パラメータを使用するため、提供されたデータに対して正しくエスケープされます。次に、これを SELECT * および結果から必要なものに適応させます。


これで作業してみてください:

name = raw_input("Please enter your username: ")
query = "SELECT * FROM username WHERE name=? ORDER BY {0}".format(column_name)
cursor.execute(query, (name,))
for row in cursor:
    print row
于 2012-11-30T12:19:22.187 に答える