public function getAllByEstado($idEstado)
 {
     $caracteristicas = new ArrayObject();
     $mysqli = new mysqli(Connection::DBHOST, Connection::DBUSERNAME, Connection::DBPASS, Connection::DBNAME);
     $query = "SELECT id, id_estado, nombre FROM caracteristica where id_estado=?";
     $statement = $mysqli->prepare($query);
     $statement->bind_param("i", $idEstado);
     $statement->execute();
     $statement->bind_result($id, $idEstados, $nombre);
     while ($statement->fetch()) {
         $caracteristica = new Caracteristica();
         $caracteristica->setId($id);
         $caracteristica->setIdEstado($idEstados);
         $caracteristica->setNombre($nombre);
         $caracteristicas->append($caracteristica);
     }
     $mysqli->close();
     return $caracteristicas;
 }
<?php

use app\model\Caracteristica;
use app\repository\CaracteristicaRepository;
use app\repository\EstadoRepository;
require_once '../../repository/CaracteristicaRepository.php';
require_once '../../repository/EstadoRepository.php';
require_once '../../model/Caracteristica.php';
require_once '../../model/Estado.php';
require_once '../../repository/Connection.php';
$caracteristicaRepository = new CaracteristicaRepository();
if (isset($_POST['id'])) {
    $id = $_POST['id'];
    //Busco la caracteristica
    $caracteristica = $caracteristicaRepository->getOne($id);
    //Seteo los campos que podrian haber cambiado
    $caracteristica->setNombre($_POST['nombre']);
    //Actualizo la caracteristica
    $caracteristicaRepository->update($caracteristica);
} else {
    $caracteristica = new Caracteristica();
    $caracteristica->setNombre($_POST['nombre']);
    //Le seteo el estado "valida"
    $estadoRepository = new EstadoRepository();
    $estado = $estadoRepository->getOneByName("Valida");
    $caracteristica->setIdEstado($estado->getId());
    $caracteristicaRepository->insert($caracteristica);
}
header("location: ../../carac_list.php");