美文网首页
记一次SQL语句错误使用教训

记一次SQL语句错误使用教训

作者: HonmaMeiko__ | 来源:发表于2020-03-05 21:05 被阅读0次

概要简述

要实现的功能很简单,在更新文章的时候,先把文字内容上传给项目后台进行存储,图片上传则是异步进行,先上传到对象存储平台,再由对象存储平台调用回调函数通知项目后台图片在云存储上的位置信息

问题说明

问题就出在将文字内容上传给项目后台这一步,当时使用的SQL语句如下

UPDATE wechat_essay SET essay_content = ${content}, essay_user_image_url = NULL, updated_at = NOW() WHERE id = ${id}

单独看这句SQL语句好像没啥问题,因为真正的问题并不直接发生在此处,这里只是问题的导火索

当项目后台接收到对象存储平台回调函数的结果时,会使用以下SQL语句对新增的图片进行本地数据库存储,SQL语句如下

UPDATE wechat_essay set essay_user_image_url = CONCAT(essay_user_image_url,'$%^',${image_url}) WHERE id = ${id}

其中$%^是人为定义的多张图片之间的分隔符,由于该SQL语句有CONCAT字符串拼接操作,用到了原先的essay_user_image_url的值,然而由于之前更新文字内容的时候将essay_user_image_url更新成了NULL值,NULL与任何字符串进行拼接最后都会变回NULL,所以最终会导致图片数据丢失并且导致浪费云存储空间

解决方法

更新文字内容的时候,将essay_user_image_url置为空字符串,这样后续的字符串拼接工作可以顺利进行,可以置空值但绝不能置空

相关文章

  • 记一次SQL语句错误使用教训

    概要简述 要实现的功能很简单,在更新文章的时候,先把文字内容上传给项目后台进行存储,图片上传则是异步进行,先上传到...

  • php常用函数

    发送一条sql语句,并且在sql语句错误的时候输出sql的错误信息 $sql 要发送的sql语句 获取一个文件或者...

  • SQL语句的优化

    sql语句的优化:多使用共享语句 尽量使你的sql语句能够使用索引。怎样使sql语句能够使用到索引呢:当sql语句...

  • SQL语句基本使用

    SQL语句基本使用——增删改查 SQL语句基本使用——WHERE子句 SQL语句基本使用——AND和OR的使用 S...

  • 关于MySQL的1064错误

    MySQL的1064错误是SQL语句写的有问题时出现的,即SQL的语法错误。笔者常常使用MySQL-python这...

  • PDOStatement对象的常用方法与抽象层概念

    除了PDO可以执行SQL语句,其实PDOStatement也可以执行SQL语句。执行SQL语句就意味着可能产生错误...

  • 常用sql注入语句

    转载链接 渗透常用SQL注入语句大全(网上收集) 记一次通过fckeditor入侵提权拿服务器 常用sql注入语句

  • 5数据库sql语句

    [TOC] SQL语句 1.使用SQL语句插入数据 在SQL语句的编辑区域,我们使用insert语句向数据表当中插...

  • 2018-12-23 MyBatis SQL无语法错误出现报错的

    问题描述:MyBatis动态SQl 使用如下语句时,在最终的拼接中产生了 sql语法错误

  • oracle 存储过程执行动态sql实例

    1 概述 oracle的动态sql是指在语句块使用execute immediate 执行sql语句,sql语句可...

网友评论

      本文标题:记一次SQL语句错误使用教训

      本文链接:https://www.haomeiwen.com/subject/vtbhrhtx.html