cur.execute(" INSERT INTO taula(时间,用户名,推文,位置)VALUES(%s,%s,%s,%s)"%( time.time(),用户名,推文,位置))
用户名,推文和位置是来自twitter流的值
假设我的推文包含 - " RT @ Nicksnacs4u:1964福特Galaxie经销商促销模型车//由继承人"
我需要配置我的推文列,以便它可以采用任何类型的文本,无论它是否包含特殊字符,如 @ Nicksnacs4u 。目前它失败了因为一些推文包含 #sometext,@ username%,$。
等文字。请帮助!!
答案 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注入攻击的大门。