如何将其写入我的数据库字段(varchar):
["TEXT"]
我尝试使用反斜杠转义引号并使用双引号。
更新 我正在使用Laravel。
我试过了:
$user = User::create(['email'=> $userEmail,
'name'=> $name,
'customer_id'=> $customer->id,
'things'=> '["TEXT"]'
]);
这是db中的结果: “[\” TEXT \ “]”
答案 0 :(得分:0)
这就是我工作的方式:
$user = User::create(['email'=> $email,
'name'=> $name,
'email'=> $email,
'customer_id'=> $customer_id,
'things'=> ["TEXT"]
]);
答案 1 :(得分:-1)
不确定你在这里是什么意思......但只是
INSERT INTO test(varchar_field) VALUES('["TEXT"]');
应该提供帮助
答案 2 :(得分:-1)
这是正确的数据。当使用双引号显示内容时,内部双引号将需要使用反斜杠字符进行转义。那就是:
"[\"TEXT\"]"
相当于:
'["TEXT"]'
如果不需要转义,因为报价不会发生冲突。
这是PHP strings工作原理的工件。
测试插入时,您应该看到以下结果:
SELECT HEX(things) FROM users WHERE email=?
显示该列的实际原始十六进制数据应为:
5B2254455854225D
5B
代表[
,5D
代表]
。如果您在前端和后端获得22
,那么由于某种原因,双引号实际上会进入您的列,而不仅仅是PHP显示字符串的方式。