Mysql错误:#1054 - Unknown column ‘admin‘ in ‘field list‘
将从网络爬取的数据写入到MySQL数据库。
使用python环境,首先需要安装PyMySQL
。安装过程如下:
再安装过程中使用阿里云镜像
以加快安装速度。
pip install PyMySQL -i https://mirrors.aliyun.com/pypi/simple/
出现错误的代码如下:
这里只截取部分代码
# 插入数据
def insert_db(insert_sql):
"""插入"""
# 建立数据库连接
db = pymysql.connect(
host="127.0.0.1",
port=3306,
user="root",
passwd="qisini",
db="springboot202128"
)
# 通过 cursor() 创建游标对象
cur = db.cursor()
try:
# 使用 execute() 执行sql
cur.execute(insert_sql)
# 提交事务
db.commit()
except Exception as e:
print("操作出现错误:{}".format(e))
# 回滚所有更改
db.rollback()
finally:
# 关闭游标
cur.close()
# 关闭数据库连接
db.close()
具体的插入操作:
title = item(".hd a span:nth-child(1)").text()
star = float(item(".rating_num").text())
star_persons = int(item(".star span:nth-child(4)").text()[:-3])
quote = item(".inq").text()
insert_sql = "insert into douban_movie values (%d, %s, %f, %d, %s)" % (i, title, star, star_persons, quote)
insert_db(insert_sql)
我们想象的操作是将后面的数据拼接到SQL语句中。事实上也正如我们想想的那样,数据已经拼接到了SQL语句中,但是这并不是合法的语句
。为什呢?
因为实际上,得到的SQL语句是:
"insert into douban_movie values (i, title, star, star_persons, quote)"
而正真需要的语句是:
"insert into douban_movie values ('i', 'title', 'star', 'star_persons', 'quote')"
发现区别了吗?
还没有评论,来说两句吧...