PHP可以';t更改数组中的json数据

PHP可以';t更改数组中的json数据,php,arrays,json,Php,Arrays,Json,我正在为一个游戏开发一个套接字服务器,但是我在更改一些从json解码的数据时遇到了问题 我有一个名为decodecrums的函数,它从数据库中获取“crumps”或用户数据,json_对其进行解码并将其放入数组中。这工作正常,但在此之后,我无法更改任何数组数据 $query = mysql_query("SELECT * FROM users WHERE username='".$this->username."';", $this->db); $row = mysq

我正在为一个游戏开发一个套接字服务器,但是我在更改一些从json解码的数据时遇到了问题

我有一个名为decodecrums的函数,它从数据库中获取“crumps”或用户数据,json_对其进行解码并将其放入数组中。这工作正常,但在此之后,我无法更改任何数组数据

    $query = mysql_query("SELECT * FROM users WHERE username='".$this->username."';", $this->db);
    $row = mysql_fetch_array($query);
    $crumbs = json_decode($row['crumbs'], true);
    $this->crumbs = $crumbs;
    $this->crumbs["roomFurniture"] = "This does not work";
回显
$this->crumps[“roomFurniture”]返回“
”,这是默认值(来自json数据),我也尝试过使用var_dump,但这也证实了它没有改变。我还尝试在课程开始时添加
public$crumbs
,但仍然发生了这种情况

我不知道是什么原因造成的,也不知道如何修复

Var_转储$this->crumps

array(24) {
  ["id"]=>
  int(1)
  ["nickname"]=>
  string(7) "Default"
  ["email"]=>
  string(0) ""
  ["active"]=>
  int(1)
  ["ban"]=>
  int(0)
  ["ismod"]=>
  int(0)
  ["rank"]=>
  int(0)
  ["key"]=>
  string(0) ""
  ["head"]=>
  int(0)
  ["face"]=>
  int(0)
  ["neck"]=>
  int(0)
  ["body"]=>
  int(0)
  ["hands"]=>
  int(0)
  ["feet"]=>
  int(0)
  ["photo"]=>
  int(0)
  ["flag"]=>
  int(0)
  ["colour"]=>
  int(1)
  ["items"]=>
  array(2) {
    [0]=>
    int(413)
    [1]=>
    int(1)
  }
  ["buddies"]=>
  array(0) {
  }
  ["ignore"]=>
  array(0) {
  }
  ["joindate"]=>
  string(0) ""
  ["coins"]=>
  int(1000)
  ["furniture"]=>
  array(0) {
  }
  ["roomFurniture"]=>
  string(0) ""
}

你必须更新数据库表中的值。数据库中的
crumbs
是JSON格式的?@HenriqueBarcelos为什么要这样做?crumbs只从数据库中读取一次,所以我现在不需要保存它们,我甚至无法更改它,所以保存它就没有意义了。@亨里克。是的,它们在数据库中是json格式的