python SQLite 3格式化正确的请求

时间:2016-10-29 11:11:57

标签: python sqlite

嗨,我不明白为什么

    sql = '''SELECT * FROM sqlite_master WHERE name =':name' and type='table' '''
    cursor.execute(sql,{'name' : table_name})

不能工作(返回无)但

    sql = "SELECT * FROM sqlite_master WHERE name ='" + table_name + "' and type='table'"
    cursor.execute(sql)

这一项工作...... 我真的想使用第一个,因为它更好,更合适,但我不明白为什么不工作。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

在SQL查询中使用参数替换的一个原因是它负责为您引用。因此,通过在第一个片段中引用自己的引号,您最终会得到双引号,这不会匹配。查询应该只是:

sql = '''SELECT * FROM sqlite_master WHERE name =:name and type='table' '''