将变量传递到MySQL查询

时间:2020-05-26 23:15:06

标签: python mysql

我试图将变量start传递到我的execute语句中,以从数据库中获取一个单独的子弹号,但是无法弄清楚如何传递它。我之所以这样设置我的方法,是因为我可能会执行几个不同的查询,而又不想一堆重复的代码。

loc

1 个答案:

答案 0 :(得分:1)

我通常是这样

sql = """SELECT slug FROM auctions WHERE location = %(loc_name)s
    """
cursor.execute(sql, {"loc_name": loc,})

将值作为字典传递。感觉更安全和整洁:)

如果“有时”您需要所有子弹,而“有时”您需要根据位置的特定子弹

if loc: #check if there is loc value
    sql = """SELECT slug FROM auctions WHERE location = %(loc_name)s"""
    cursor.execute(sql, {"loc_name": loc,})
else:
    sql = """SELECT slug FROM auctions"""
    cursor.execute(sql)

可以,但是感觉有更好的写作风格..嗯..

相关问题