1
簡單的問題,可能有一個非常簡單的答案。我正在將格式爲「2012-06-10」的日期字符串從Python腳本寫入TEXT列。如何防止sqlite將字符串評估爲數學表達式?
例如
cur.execute("CREATE TABLE tbl(date TEXT, ...)") cur.execute('INSERT INTO tbl VALUES(%s)' % (str(date[i])), ...)
腳本實際上是評估日期字符串,因此「2012-06-10」被寫入到表「1996年」。從閱讀文檔,我猜這與類型親和力有關,但我不知道如何重寫,甚至爲什麼字符串將被評估。
爲什麼第一種方法更好?由於[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)。 –
這完美的作品。 +1的解釋。 – acpigeon
如果這些值已經是字符串(或Python的sqlite3模塊會自動轉換爲字符串的'datetime.date'對象),則'str'調用是多餘的。 – dan04