在mysqldb中转义值

问题描述 投票:0回答:1

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

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

我该如何插入这些?这就是我目前正在做的事情但是它给出了一个SQL错误可能是因为第二个变量中未转义的% -

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

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

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

python mysql mysql-python
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.