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 回答