在mysqldb中转义值

时间:2017-12-27 00:05:19

标签: python mysql mysql-python

我从csv文件中提取了以下值:

vars = (
  '001U0000016lf5jIAA', 
  'Bam Margera Presents: Where the #$&% is Santa? (Unrated)', 
  'a0KU000000JMpgzMAD'
)

我如何插入这些?这就是我目前正在做的事情,但它可能因为第二个var中未转义的%而发出SQL错误 -

cursor.execute('''INSERT INTO mytable VALUES (%s, %s, %s)''', vars)
  

TypeError:并非在字符串格式化期间转换所有参数

注意:我宁愿保持vars as-is(不试图逃避其中的任何内容,只修改SQL / python语句。

1 个答案:

答案 0 :(得分:0)

试试这个

query = '''INSERT INTO mytable VALUES (%s, %s, %s)''', vars
cursor.execute(db.escape_string(query))

escaped = tuple(db.escape_string(x) for x in vars)
cursor.execute('''INSERT INTO mytable VALUES (%s, %s, %s)''', escaped)