作为数组的PHP属性存在问题


Problems with a PHP property which is an array

在调用下面的方法时,我得到一个"数组到字符串的转换"错误。错误的行是方法中唯一的一行(带有数据库查询的行)。

public function setStatus($status) {
    $this->mysqli->query("UPDATE projects SET status='$status' WHERE id='$this->data[id]' LIMIT 1");
}

如果我稍微修改一下方法,它会很好:

public function setStatus($status) {
    $id = $this->data['id'];
    $this->mysqli->query("UPDATE projects SET status='$status' WHERE id='$id' LIMIT 1");
}

我做错了什么?以下是有关"数据"属性的更多信息:

    $result = $this->mysqli->query("SELECT * FROM projects WHERE id='123' LIMIT 1");
    $this->data = $result->fetch_assoc();
public function setStatus($status) {
    $this->mysqli->query("UPDATE projects SET status='$status' WHERE id='$this->data[id]' LIMIT 1");
}

public function setStatus($status) {
    $this->mysqli->query("UPDATE projects SET status='$status' WHERE id='".$this->data['id']."' LIMIT 1");
}

注意在id字段我更改了它。