0
我試圖把一列名到一個SQL查詢正是如此Python的SQLITE3曲解參數
import sqlite3
db = sqlite3.connect('path/to/my/database.sqlite')
cur = db.cursor()
def get_val(field):
return cur.execute('''
SELECT x, y, :field FROM literal_table
WHERE
:valid_field_name > 0 AND
(some other conditions)
GROUP BY x, y''',
{'field': field}).fetchall()
get_val('valid_field_name')
但是當我執行,而不是從抓列值的代碼,Python是返回
[(x1, y1, u'valid_field_name'), (x2, y3, u'valid_field_name'), ...]
我知道你不能對錶名進行編碼,但列名的參數化文檔中有例子。我一起使用字符串格式化(用於私人數據處理的代碼,因此SQL注入不是問題),但我需要了解發生了什麼!
我正在使用Python 2.7.3
我沒有看到問題,代碼是做什麼應該做的。請注意,您正在返回'cur.execute' sql查詢的結果,並且這是一個元組。 –
文檔中有哪些示例? –
看起來我太快讀了文檔; 'select?'存在,但不是'select?從......開始。 –