在使用scrapy框架连接数据库时遇到了1054错误
具体代码如下:
try:
self.cursor.execute('insert into qiubai(author,content) values(%s,%s)'%(item['author'],item['content']))
self.conn.commit()
except Exception as e:
print(e)
self.conn.rollback()
return item
然后报错:
(1054, "Unknown column 'dfsgsfdbsd' in 'field list'")
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1")
sql语句错误,经过网上查找
修改sql语句为:
self.cursor.execute('insert into qiubai(author,content) values("%s","%s")'%(item['author'],item['content']))
或
self.cursor.execute("insert into qiubai(author,content) values('%s','%s')"%(item['author'],item['content']))
就执行成功了。
我初学pysql时的代码:
item ={
'username':'110',
'sex':'110',
'password':'110',
'pid':'110',
'tel':'110'
}
cursor.execute('insert into user(username,sex,password,pid,tel) values (%s,%s,%s,%s,%s)'%(item['username'],item['sex'],item['password'],item['pid'],item['tel']))
是可以执行的。
最后发现,初学时的数据是我自定义的,但是scrapy爬取到的数据前后有些是有空格的,所以导致报错。
所以以后在编写sql语句时尽量规范,该加引号加引号