在 mysql 表中存储 json 字符串时遇到小问题。 字符串例如:
'{"variable":"content here with \" addsleshes "}'
使用 json_encode 创建。 使用简单的 mysqli_query 函数将此字符串存储在数据库中。
mysqli_query('insert into ... values \'{"variable":"content here with \" addsleshes "}\' ');
在此之后:
mysqli_query('select *..');
mysqli_fetch_array($res);
当我从 Mysql 获取此字段并尝试使用 php json_decode 时,它将返回 NULL,因为我在 "之前不再有斜线。不能使用 addslashes 函数,因为它会像\"variable\"一样添加斜线。 不确定如何解决这个问题?
最佳答案
你为什么不试试反过来呢。
在实际将 JSON 传递给 mysqli_query
之前使用 mysqli_escape_string
$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 中删除斜杠。
它的工作方式与您正在寻找的方式相同。
关于php - 如何在mysql表中存储json字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24538384/