博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql插入数据报错一二
阅读量:4843 次
发布时间:2019-06-11

本文共 1095 字,大约阅读时间需要 3 分钟。

  上周selenium+phantomjs+python3简单爬取一个网站,往数据库写数据遇到以下两个问题,记录一下:  

  报错一:Data truncated for column 'update_time' at row 1

  抓网站英文版的时候,因为一个标题太长报错,title字段类型为varchar默认的255,改为2048或者按照实际改小一点。问题解决。

  报错二: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

  虽然上面改了,在同一处还是报错,现在错误是“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 'AGREEMENT\nAMONG THE SHAREHOLDERS OF\nMEDIA EAGLE LIMITED;\nAND\n(2) DISCLOSEABLE TR' at line 1”原始insert语句如下:

sql = "REPLACE INTO crawl_record (`type`, `title`, `create_time`, `update_time`) VALUES ('%s', '%s', '%s', '%s')"

  near后面的一串是要被插入的标题,可见这个标题不仅长,里面还有特殊字符。sql语句使用的单引号,是无效的,改为双引号,改为双引号,最好每个字段用英文下的波浪线``包起来,以免字段设置了关键字。sql改为:

sql = 'REPLACE INTO crawl_record (`type`, `title`, `create_time`, `update_time`) VALUES ("%s", "%s", "%s", "%s")'

  爬取数据,存储数据,各种坑。爬取的时候一定要先一页页的爬取没问题后,再翻页批量爬取,此时可能还会有坑;存数据的时候,一定按标准书写sql,若爬取重要数据,众多数据,数据库表设计一定要让公式DB过一下,降低各种无厘头的错误~

转载于:https://www.cnblogs.com/NolaLi/p/10893072.html

你可能感兴趣的文章
粗糙的贝叶斯转化概率预测模型
查看>>
【随笔】8月14日
查看>>
Spring支持的@Transactional声明式事务管理的功能
查看>>
雷林鹏分享:jQuery EasyUI 表单 - 格式化下拉框
查看>>
导出excel失败,提醒提示加载类型库/DDL出错
查看>>
.NET基础架构方法—DataTableToExcel通用方法
查看>>
一篇很全面的freemarker教程
查看>>
linux常用命令(个人总结)
查看>>
city-picker插件使用-移动h5三级联动
查看>>
如何安装多操作系统
查看>>
Codeforces 1132G(dfs序+线段树)
查看>>
Hibernate
查看>>
十二、异常处理
查看>>
HashMap和HashTable的区别
查看>>
团队作业9————事后诸葛亮分析
查看>>
quartz.net 使用(一)-执行定时计划任务
查看>>
github上的版本和本地版本冲突的解决方法
查看>>
Centos7安装gitlab服务器
查看>>
Oracle事务
查看>>
King's Pilots
查看>>