Python,MySQL,MySQL异常。编程错误:(1064,';您的SQL语法有错误
我目前正在向本地MySQL数据库发送一条推特流,我遇到了一个问题。每当用户创建一条包含“located”的推特时,我都会收到一个语法错误,因为它会干扰Insert语句 我想知道解决这个问题的最佳方法,这样个人推特就不会影响insert语句 示例变量:Python,MySQL,MySQL异常。编程错误:(1064,';您的SQL语法有错误,python,mysql,python-2.7,twitter,mysql-python,Python,Mysql,Python 2.7,Twitter,Mysql Python,我目前正在向本地MySQL数据库发送一条推特流,我遇到了一个问题。每当用户创建一条包含“located”的推特时,我都会收到一个语法错误,因为它会干扰Insert语句 我想知道解决这个问题的最佳方法,这样个人推特就不会影响insert语句 示例变量: tweetId = 98757629 userId = 07gos870sg text = "this is "what " is messing up my sql" day = 04 month = 'dec' year = 2016 hour
tweetId = 98757629
userId = 07gos870sg
text = "this is "what " is messing up my sql"
day = 04
month = 'dec'
year = 2016
hour = 23
minute = 45
placeId = 'kj4h5b899'
c.execute('INSERT INTO tweet VALUES("%s", "%s", "%s", "%s", "%s",
"%s", "%s", "%s", "%s")' % \
(tweetId, userId, text, day, month, year, hour, minute, placeId))
我想在将insert语句发送到代码之前,只需取出任何可能会弄乱insert语句的字符(“`”),但我不想编辑任何用户提交的数据。您应该绑定变量,而不是格式化sql字符串
sql = "INSERT INTO tweet VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"
values = (tweetId, userId, text, day, month, year, hour, minute, placeId)
cursor.execute(sql, values)
请看问题的答案。