Mysql错误:#1054 - Unknown column ‘admin‘ in ‘field list‘

ゞ 浴缸里的玫瑰 2022-10-29 09:10 197阅读 0赞

将从网络爬取的数据写入到MySQL数据库。
使用python环境,首先需要安装PyMySQL。安装过程如下:
再安装过程中使用阿里云镜像以加快安装速度。

  1. pip install PyMySQL -i https://mirrors.aliyun.com/pypi/simple/

出现错误的代码如下:

这里只截取部分代码

  1. # 插入数据
  2. def insert_db(insert_sql):
  3. """插入"""
  4. # 建立数据库连接
  5. db = pymysql.connect(
  6. host="127.0.0.1",
  7. port=3306,
  8. user="root",
  9. passwd="qisini",
  10. db="springboot202128"
  11. )
  12. # 通过 cursor() 创建游标对象
  13. cur = db.cursor()
  14. try:
  15. # 使用 execute() 执行sql
  16. cur.execute(insert_sql)
  17. # 提交事务
  18. db.commit()
  19. except Exception as e:
  20. print("操作出现错误:{}".format(e))
  21. # 回滚所有更改
  22. db.rollback()
  23. finally:
  24. # 关闭游标
  25. cur.close()
  26. # 关闭数据库连接
  27. db.close()

具体的插入操作:

  1. title = item(".hd a span:nth-child(1)").text()
  2. star = float(item(".rating_num").text())
  3. star_persons = int(item(".star span:nth-child(4)").text()[:-3])
  4. quote = item(".inq").text()
  5. insert_sql = "insert into douban_movie values (%d, %s, %f, %d, %s)" % (i, title, star, star_persons, quote)
  6. insert_db(insert_sql)

我们想象的操作是将后面的数据拼接到SQL语句中。事实上也正如我们想想的那样,数据已经拼接到了SQL语句中,但是这并不是合法的语句。为什呢?
因为实际上,得到的SQL语句是:

  1. "insert into douban_movie values (i, title, star, star_persons, quote)"

而正真需要的语句是:

  1. "insert into douban_movie values ('i', 'title', 'star', 'star_persons', 'quote')"

发现区别了吗?

发表评论

表情:
评论列表 (有 0 条评论,197人围观)

还没有评论,来说两句吧...

相关阅读