将方括号中的双引号写入mysql

fbcarpbf  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(707)

如何将其写入我的数据库字段(varchar):

["TEXT"]

我试过用反斜杠和双引号来转义引号。
更新我用的是拉威尔。
我试过这个:

$user = User::create(['email'=> $userEmail,
                                        'name'=> $name,
                                        'customer_id'=> $customer->id,
                                        'things'=> '["TEXT"]'
]);

这是数据库中的结果:“[\”text\“]”

11dmarpk

11dmarpk1#

这是正确的数据。当显示带有双引号的内容时,内部双引号需要用反斜杠字符转义。即:

"[\"TEXT\"]"

相当于:

'["TEXT"]'

不需要转义,因为引号不冲突。
这是php字符串工作方式的产物。
测试插入时,应看到以下结果:

SELECT HEX(things) FROM users WHERE email=?

显示该列的实际原始十六进制数据,应为:

5B2254455854225D

哪里 5B 表示 [ 以及 5D 代表 ] . 如果你得到 22 在前面和结尾,出于某种原因,双引号实际上进入了您的列,而不仅仅是php显示字符串的方式。

h9vpoimq

h9vpoimq2#

不太清楚你在这里是什么意思。。但很简单 INSERT INTO test(varchar_field) VALUES('["TEXT"]'); 应该有帮助

q9yhzks0

q9yhzks03#

我就是这样工作的:

$user = User::create(['email'=> $email,
        'name'=> $name,
        'email'=> $email,
        'customer_id'=> $customer_id,
        'things'=> ["TEXT"]
    ]);

相关问题