问答

textarea符号问题

作者:admin 2021-04-20 我要评论

#includeiostreamusing namespace std;int main(){ int a,b; scanf("%d%d",a,b); print("%d\n",a+b); return 0;} 我在网页textarea中编辑这一段代码,想存储到数...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
#include<iostream>
using namespace std;
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    print("%d\n",a+b);
    return 0;
}

我在网页textarea中编辑这一段代码,想存储到数据库中,结果在符号上出了问题。
image.png
';'和'&'和' '和'<'和'>'都变成了','(分号与号空格尖括号在数据库都变成了逗号)
我的做法:

var mycode = $("#code").val();

然后通过ajax传到后端

CommonResult informFileCreate(String user, Integer question_id, String code) {
   //insert插入数据库......
}

求助各位大神:如何将这一段代码原封不动地保存到mysql中?

###

首先排除前端获取的问题,在你接收到前端请求的数据输出出来看一下。

如果没问题把你sql语句贴出来 这种< >符号存入mysql需要做处理的

###

后端为了安全,可能在保存时对字符串进行了转义.可以看一下所使用的后端框架是否有对 mysql 的预处理语句的封装, 有的话, 可以使用预处理来入库. 没有的话, 可以自己使用原生sql 语句, 通过预处理来入库.

=================
传个图, 可作参考, 具体可以搜索一下 mysql 预处理.

image

###

image.png
上面是后端Sout的结果,看起来是符号转义了。
但是分号在这看起来又没问题,到数据库又都变成逗号了。

INSERT INTO `study`.`submissions` (
    `id`,
    `uuid`,
    `time`,
    `user`,
    `question_id`,
    `code`,
    `result`
)
VALUES
    (
        '29',
        '12bc66a6-c2f7-4bd9-b804-553f2cf437bd',
        '2021-03-16 18:40:32',
        '12345678910',
        '1',
        '#include,iostream,\nusing namespace std,\nint main()\n{\n    int a,b,\n    scanf(\"%d%d\",,a,,b),\n    print(\"%d\\n\",a+b),\n    return 0,\n}',
        NULL
    );

以上是插入的sql语句,没有做任何处理。
插入结果就是分号、尖括号和&符号不正确。
image.png

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器