我有一个 json 对象要存储在我的数据库中:
$string='{"test": [{"name":"dave","user":"dan"}]}';
$encoded=json_encode($string);
$connection=Database::getInstance();
$escaped=mysqli_real_escape_string($connection->connection,$encoded);
$q="UPDATE table SET column=?";
$s=mysqli_prepare($conn->connection,$query);
mysqli_stmt_bind_param($s,'s',$escaped);
mysqli_stmt_execute($s);
当我 json_encode 和 mysqli_real_escape_string 时,它在我的数据库中显示如下:
\"{\\\"test\\\": [{\\\"name\\\":\\\"dave\\\",\\\"user\\\":\\\"dan\\\"}]}\"
显然,我不想邀请黑客,但这似乎是大量的斜杠......我需要同时执行 json_encode 或 mysqli_real_escape_string 还是我可以只使用 json_encode 吗?
最佳答案
您已经在使用参数化查询 - mysqli_real_escape_string()
在这种情况下就不再需要了。 (事实上,这是错误的,因为它破坏了数据。)
关于php - 我需要对 json_encoded 对象进行 escape_string 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771100/