textarea符号问题

发布于 2022-09-12 22:49:38 字数 584 浏览 11 评论 0

#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中?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

大姐,你呐 2022-09-19 22:49:38

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

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

耀眼的星火 2022-09-19 22:49:38

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

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

image

瀞厅☆埖开 2022-09-19 22:49:38

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文