如何配置sqlite列以便它可以采用任何类型的值

时间:2015-02-22 13:33:39

标签: python database sqlite sql-insert

cur.execute(" INSERT INTO taula(时间,用户名,推文,位置)VALUES(%s,%s,%s,%s)"%( time.time(),用户名,推文,位置))

用户名,推文和位置是来自twitter流的值

假设我的推文包含 - " RT @ Nicksnacs4u:1964福特Galaxie经销商促销模型车//由继承人"

我需要配置我的推文列,以便它可以采用任何类型的文本,无论它是否包含特殊字符,如 @ Nicksnacs4u 。目前它失败了因为一些推文包含 #sometext,@ username%,$。

等文字。

请帮助!!

1 个答案:

答案 0 :(得分:1)

您应该在SQL语句中使用占位符,而不是自己格式化它们。

cur.execute(
    'INSERT INTO taula(time, username, tweet, location) VALUES (?,?,?,?)',
    (time.time(), username, tweet, location),
)

请阅读https://docs.python.org/2/library/sqlite3.html了解详情。通过格式化自己的SQL语句,您可以打开一些令人讨厌的SQL注入攻击的大门。

xkcd 327