【问题标题】:How to configure sqlite column so that it can take any kind of values如何配置 sqlite 列以便它可以采用任何类型的值
【发布时间】:2015-02-22 13:33:39
【问题描述】:

cur.execute("INSERT INTO taula (time, username, tweet, location) VALUES (%s,%s,%s,%s)" % (time.time(),用户名、推文、位置))

username、tweet 和 location 是我来自 twitter 流的值

假设我的推文包含 -“RT @Nicksnacs4u: 1964 Ford Galaxie Dealer Promotional Model Car // by Successionary”

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

这样的文本

请帮忙!!

【问题讨论】:

    标签: python database sqlite sql-insert


    【解决方案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 注入攻击打开了大门。

    【讨论】:

    • 非常感谢。目前,SQL 注入不是我关心的问题,但您的回答解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多