【问题标题】:python - need help inserting text files with open() into mysqlpython - 需要帮助将带有 open() 的文本文件插入 mysql
【发布时间】:2010-10-13 04:59:31
【问题描述】:

有人可以帮助我使用 mysql 连接语句将文本文件插入 mysql 表(字段类型为长 blob)吗?

例如:

cursor.execute("insert into mytable (file_contents) values ('"+open(filename,"r").read()+"')")

显然这不是很实用,有人可以发布一个更好的方法吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    由于特殊字符(引号!)或恶意 SQL 命令,将文件内容直接附加到 SQL 查询中是很危险的。

    试试这个:

    with open(filename,"r") as infile:
        cursor.execute("insert into mytable (file_contents) values (%s)", (infile.read(), ))
    

    【讨论】:

    • 没错。请注意,来自 infile 的数据作为第二个参数传递——字符串插值由 cursor.execute 处理,这也确保字符串参数被正确转义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2017-02-09
    相关资源
    最近更新 更多