Python 如何使用SQL参数
我正在尝试为我正在制作的一个简单游戏创建一个数据库,但在查询玩家数据时遇到了问题。到目前为止,可以搜索和更新数据库,但只有通过修改实际代码才能更改搜索词 到目前为止的全部代码(对任何缩进错误表示歉意): 我想为这一部分找到一个解决方案:Python 如何使用SQL参数,python,sqlite,sqlparameter,Python,Sqlite,Sqlparameter,我正在尝试为我正在制作的一个简单游戏创建一个数据库,但在查询玩家数据时遇到了问题。到目前为止,可以搜索和更新数据库,但只有通过修改实际代码才能更改搜索词 到目前为止的全部代码(对任何缩进错误表示歉意): 我想为这一部分找到一个解决方案: # Function that (only) retrieves data from the database def retrieve_db(mode, name): # Returns value of player's score if m
# Function that (only) retrieves data from the database
def retrieve_db(mode, name):
# Returns value of player's score
if mode is "score":
print("Retrieving scores")
print("Finding", name)
command = ("""
SELECT score FROM players
WHERE username = 'John Smith'
""")
return cur.execute(command).fetchone()[0]
我想要一个将name参数传递到这个命令中的解决方案,而不是其中的username='John Smith',因此无论name参数是什么,都将成为正在搜索的术语
我在这里找到了一个类似的例子(),但我一直在研究如何在这段代码中实现(?)(变量)思想
到目前为止,我所尝试的:
command = ("""
SELECT score FROM players
WHERE username = VALUES (?)""", name)
command = ("""
SELECT score FROM players
WHERE username VALUES (?)""", name)
非常感谢您能给予的任何帮助。提前谢谢
作为将来的参考,我得到的最终工作版本是:
command = ("""
SELECT score FROM players
WHERE username = ?
""")
return cur.execute(command, name).fetchone()[0]
其中调用函数时,名称作为['John Smith']提供。值是函数的必需部分 参数标记(
?
)只是替换值本身:
命令=(“”“
从玩家中选择分数
其中username=?
""")
params=['John Smith']
返回cur.execute(命令,参数).fetchone()[0]
你考虑过放弃吗?逗号太少您已经在
populate\u db
中使用了参数。问题是什么?在该函数中,它只是将值插入所有字段,而不进行搜索。我的问题是在命令中使用(?)(变量)来实现同样的想法,在命令中也会进行搜索。到目前为止,我尝试了一些不同的变体,但运气不佳。编辑问题以显示您尝试过的内容。还有一个问题,是否需要重新构造它,使参数不必是列表?否。'John Smith'
将被解释为包含十个字符的列表。
command = ("""
SELECT score FROM players
WHERE username = ?
""")
return cur.execute(command, name).fetchone()[0]
example_data = [("John Smith", "Password", 10)]
cur.executemany("""
INSERT INTO players
VALUES (?, ?, ?)""",