在mysql表中存储json字符串有小问题。 字符串例如:
'{"variable":"content here with \" addsleshes "}'
使用json_encode创建。 使用简单的mysqli_query函数将此字符串存储在DB中。
mysqli_query('insert into ... values \'{"variable":"content here with \" addsleshes "}\' ');
之后:
mysqli_query('select *..');
mysqli_fetch_array($res);
当我从Mysql获取此字段并尝试使用php json_decode时,它将返回NULL,因为我在“。之前不再使用斜杠。”不能使用addslashes函数,因为它会添加斜杠,例如\“variable \”。 不知道如何解决这个问题?
答案 0 :(得分:3)
为什么不试着反过来呢。
在实际将 JSON 传递给mysqli_escape_string
之前使用mysqli_query
$json = '["Json","Just a Sample Data","Data 2"]'
mysqli_query('insert into ... values'.mysqli_escape_string($json));
现在,从数据库中检索数据时
mysqli_query('select *..');
mysqli_fetch_array($res);
使用stripslashes($str)
从JSON中删除斜杠。
它的工作方式与您正在寻找的方式相同。
答案 1 :(得分:0)
尝试:
'{"variable":"content here with \\" addsleshes "}'