无法在sqlite / python中获取参数吗?

时间:2013-08-29 16:18:24

标签: python sqlite

我在sqlite3中遇到参数问题。问题来了又去,所以一定有我遗漏的东西。我已经尝试将我的代码简化为最基本的形式,但仍然不明白我做错了什么。我可以使用sql = 'SELECT {} FROM {}'.format(col, tbl)形式的字符串替换来使用此代码,但我知道这不安全。

以下是示例代码:

def check_exists(self, col, tbl):
        self.cursor.execute("SELECT ? from ?" , (col, tbl))
        if self.cursor.fetchall():
            return True
        return False

我这样跑:

check_exists('type', 'tbl_types')

这引发了一个例外:

self.cursor.execute("SELECT ? from ?" , (col, tbl))
OperationalError: near "?": syntax error

我的代码可以正常使用显式参数:

def check_exists(self):
        self.cursor.execute('SELECT * from tbl_types')
        if self.cursor.fetchall():
            return True
        return False

>>> t.check_exists()
True

0 个答案:

没有答案