【问题标题】:Inserting into a strings with special characters into an json mysql column (using php/mysql/Laravel)将带有特殊字符的字符串插入到 json mysql 列中(使用 php/mysql/Laravel)
【发布时间】:2021-09-22 08:47:23
【问题描述】:

我正在 db 表上执行插入操作,该表有一个名为 json_props 的列 - 当一个具有特殊字符(如 Everyone's)的单词出现在 json 列中(并返回前端)时,像这样

{"col1": "Everyone's"}

我正在使用 Laravel 框架,将其正确插入/转义到数据库中的最佳/推荐 Laravel 方法是什么。

-- 预期输出--

插入带有特殊字符(如撇号)的字符串,它应该在前端看起来像这样,例如 term's

-- 实际输出--

term's

【问题讨论】:

  • 你在刀片中使用json数据吗?
  • 没有刀片模板 - 它以纯 HTML 呈现

标签: php mysql laravel mysql-json


【解决方案1】:

当一个包含Everyone's 之类的特殊字符的单词出现在 json 列中(并返回到前端)中时,例如{"col1": "Everyone's"}

这是一个客户端软件,它在将值插入表中时用相应的实体替换引号字符。不是 MySQL。

在代码中找到执行此替换的位置,并将其替换为引号字符加倍。然后该值将成功保存并使用 MySQL 检索。

CREATE TABLE test (json_props JSON);
INSERT INTO test VALUES ('{"col1": "Everyone''s"}');
SELECT CAST(json_props AS CHAR) FROM test;
CAST(json_props AS CHAR)
{"col1": "Everyone's"}

db小提琴here

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多