php - 我需要对 json_encoded 对象进行 escape_string 吗?

标签 php mysql json

我有一个 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/

相关文章:

mysql - 从 mysql 表中搜索 json 值

php - MYSQL显示连接2个表后未连接的值

php - 如何使用mysql和php从子表中获取数据的最大值和最小值?

PHP/MYSQL 回显查询总数

mysql - 如何在 PostgreSQL 数据库中使用 DAY 函数?

java - 从字符串 JSON 数据获取嵌套 JSON 数据

javascript - 来自 ajax 调用的 JSON 输入意外结束

php - 如何在 mysqli 准备语句中使用多个内部连接和多个 WHERE 子句?

php - 如何在 Windows 上查看 XAMPP 的版本?

javascript - 如何仅将部分输入值传递给变量和url?