mysql储存长文本,出现问题

mysql中用longtext存储长文本,当文本超过一定字数就报错(大概2000字左右),出现问题了,这个该如何是好
image.png
上传的长文本,html
image.png
node写的sql新增数据

  let {
      role,
      title,
      html,
      text,
      tag,
      pic,
      picname,
      video,
      videoname,
      apply,
      original,
      description,
      top,
      create_time
    } = req.body;
 const query = `insert into article(title,tag,pic,video,picname,videoname,apply,original,description,top,html,text,create_time) values('${title}','${tag}','${pic}','${video}','${picname}','${videoname}','${apply}','${original}','${description}','${top}','${html}','${text}','${create_time}')`;

node接口服务报错
image.png

阅读 2k
2 个回答

看起来是因为你的文本里面包含有单引号没有转义导致sql语句报错,不是longtext大小造成的

你是新学编程吧? 如果是看的视频或教程, 别看了, 换个.

sql语句不允许直接拼字符串.
必须要如下处理

  1. 使用 prepare 方式调用数据库驱动的query或execute方式.
  2. 或者 用户输入的数据必须调用 数据库驱动的 escape或quote 进行转义.

你这问题就是sql注入的问题.

sql改成 insert into 表 ( 列1, 列2, 列3 ) values ( ?, ?, ? )
在执行 db.execute的时候 , 按数组, 把缺的参数传进去.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏