PUT method with inheritance

I have 2 classes in php called "component.php" and "case.php", component.php is inheriting case.php, but when I try to edit some field with the PUT method through Postman, along with its fields, it says:

"Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\TestClassProject\classes\models\case.php:136 Stack trace: #0 C:\xampp\htdocs\TestClassProject\classes\casecontroller.php(142): Cases->update() #1 C:\xampp\htdocs\TestClassProject\classes\index.php(14): require_once('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\TestClassProject\classes\models\case.php on line 136"

and I do not know if I'm sending the parameters wrong, or I'm missing some, or I'm doing it wrong. where I do the tests is in a file called "casecontroller.php"

This is my file "case.php"

<?php
require_once("connection.php");
require_once("component.php");
require_once("exceptions/accessdeniedexception.php");
class Cases extends Component
{
    //attributes
    private $width;
    private $height;
    private $formMotherBoard;
    private $hardDiskSupport;

    //getters and setters
    public function getWidth(){ return $this->width;}
    public function setWidth($width){$this->width=$width;}
    public function getHeight(){ return $this->height;}
    public function setHeight($height){$this->height=$height;}
    public function getFormMotherBoard(){ return $this->formMotherBoard;}
    public function setFormMotherBoard($formMotherBoard){$this->formMotherBoard=$formMotherBoard;}
    public function getHardDiskSupport(){ return $this->hardDiskSupport;}
    public function setHardDiskSupport($hardDiskSupport){$this->hardDiskSupport=$hardDiskSupport;}    

//constructor
public function __construct()
{
    //0 arguments received : creates an empty object
    if(func_num_args() == 0)
    {
        parent::__construct();
        $this->width = 0;
        $this->height = 0;
        $this->formMotherBoard = '';
        $this->hardDiskSupport = '';            
    }       
}

//update a case
public function update() 
{                        
    $affected = parent::update() ? 1 : 0;
    //get connection
    $connection = MySqlConnection::getConnection();
    //statement
    $statement = 'update case set width = ?, height = ?, formMotherBoard = ?, hardDiskSupport = ? where idComponent = ?';
    //prepare statement
    $command = $connection->prepare($statement);
    //bind params
    $command->bind_param('iissi', $width,$height, $formMotherBoard, $hardDiskSupport, $id);
    $width =  $this->width;
    $height =  $this->height;
    $formMotherBoard =  $this->formMotherBoard;
    $hardDiskSupport =  $this->hardDiskSupport;
    $id =  $this->id;
    //execute
    $command->execute();
    $affected += $command->affected_rows;
    //close command
    mysqli_stmt_close($command);
    //close connection
    $connection->close();
    //return result
    return ($affected > 0);
}
}

This is my file "component.php"

<?php
   require_once('exceptions/recordnotfoundexception.php');
   require_once('connection.php');
   require_once('color.php');
   require_once('brand.php');

   abstract class Component {

protected $id;
protected $name;
protected $price;
protected $stock;
protected $image;
protected $model;
protected $barcode;
protected $brand;
protected $color;

//getters
public function getId() { return $this->id; }
public function getName() { return $this->name; }
public function getPrice() { return $this->price; }
public function getStock() { return $this->stock; }
public function getImage() { return $this->image; }
public function getModel() { return $this->model; }
public function getBarCode() { return $this->barcode; }
public function getBrand() { return $this->brand; }
public function getColor() { return $this->color; }

//setters
public function setName($name) { $this->name = $name; }
public function setPrice($price) { $this->price = $price; }
public function setStock($stock) { $this->stock = $stock; }
public function setImage($image) { $this->image = $image; }
public function setModel($model) { $this->model = $model; }
public function setBarCode($barcode) { $this->barcode = $barcode; }
public function setBrand($brand) { $this->brand = $brand; }
public function setColor($color) { $this->color = $color; }

public function __construct() {
    if(func_num_args() == 0) {
        $this->id = 0;
        $this->name = "";
        $this->price = 0;
        $this->stock = 0;
        $this->image = "";
        $this->model = "";
        $this->barcode = "";
        $this->brand = new Brand();
        $this->color = null;
    }               
}

    protected function update() {

    $connection = MysqlConnection::getConnection();

    $statement = "update component set name = ?, price = ?, stock = ?, image = ?, model = ?, barcode = ?, idBrand = ?, idColor = ? where id = ?";
    $command = $connection->prepare($statement);
    $command->bind_param('sdisssiii', $name, $price, $stock, $image, $model, $barcode, $idbrand, $idcolor, $id);
    $id = $this->id;
    $name = $this->name;
    $price = $this->price;
    $stock = $this->stock;
    $image = $this->image;
    $model = $this->model;
    $barcode = $this->barcode;
    $idbrand = $this->brand->getId();
    $idcolor = $this->color != null ? $this->color->getId() : null;

    $command->execute();
    $affected = $command->affected_rows;

    mysqli_stmt_close($command);
    $connection->close();

    return ($affected > 0);
}

protected function getValuesForJson() {
    return array(
        "id" => $this->id,
        "name" => $this->name,
        "price" => $this->price,
        "stock" => $this->stock,
        "image" => $this->image,
        "model" => $this->model,
        "barcode" => $this->barcode,
        "brand" => json_decode($this->brand->toJson()),
        "color" => $this->color != null ? json_decode($this->color->toJson()) : null
    );
}
}

and my file "caseocontroller.php"

<?php
    require_once("models/case.php");
   //No edita por alguna razón
   if($_SERVER['REQUEST_METHOD'] == 'PUT') {
        parse_str(file_get_contents('php://input'), $putData);    
        if(isset($putData['data'])){
          $jsonData = json_decode($putData['data'], true);
          $valuesKeyOk = false;
          if(isset($jsonData['id'])) {
             try {
                   $case = new Cases($jsonData['id']);
                   $valuesKeyOk = true;
                 } catch(RecordNotFoundException $ex) {
            $valuesKeyOk = false;
            echo json_encode(array(
                'status' => 3,
                'message' => $ex->getMessage()
            ));
            die;
        }
    }

    if($valuesKeyOk && isset($jsonData['name']))
        $case->setName($jsonData['name']);
    if($valuesKeyOk && isset($jsonData['price']))
        $case->setPrice($jsonData['price']);
    if($valuesKeyOk && isset($jsonData['stock']))
        $case->setStock($jsonData['stock']);
    if($valuesKeyOk && isset($jsonData['image']))
        $case->setImage($jsonData['image']);
    if($valuesKeyOk && isset($jsonData['model']))
        $case->setModel($jsonData['model']);
    if($valuesKeyOk && isset($jsonData['barcode']))
        $case->setBarCode($jsonData['barcode']);
    try{

        if($valuesKeyOk && isset($jsonData['brand']))
            $case->setBrand(new Brand($jsonData['brand']));
        if($valuesKeyOk && isset($jsonData['color']))
            $case->setColor(new Color($jsonData['color']));
    }catch(RecordNotFoundException $ex){
        echo json_encode(array(
            'status' => 3,
            'message' => $ex->getMessage()
        ));

    }
        if($valuesKeyOk && isset($jsonData['width']))
        $case->setWidth($jsonData['width']);
        if($valuesKeyOk && isset($jsonData['height']))
        $case->setHeight($jsonData['height']); 
        if($valuesKeyOk && isset($jsonData['formMotherBoard']))
        $case->setFormMotherBoard($jsonData['formMotherBoard']);
        if($valuesKeyOk && isset($jsonData['hardDiskSupport']))
        $case->setHardDiskSupport($jsonData['hardDiskSupport']); 

        if($valuesKeyOk && $case->update()) {
            echo json_encode(array(                
                'status' => 0,
                'message' => 'Case updated successfully'
            ));
        } else {
            echo json_encode(array(
                'status' => 0,
            'message' => 'No change was made'
        ));
    }

    if(!$valuesKeyOk) {
        echo json_encode(array(
            'status' => 4,
            'message' => 'Incorrect JSON key/values in received data'
        ));
    }        
} else {
    echo json_encode(array(
        'status' => 1,
        'message' => 'Missing data parameters'
    ));
}
}

I hope someone can help me with that or give me a suggestion on how to fix it

Thanks in advance