public function ExecuteInsert($table, $data)
    {
            if (is_object($data))
                ModelState::ModelTreatment($data);

            $data = (array)$data;

            // Ordena
            ksort($data);

            // Campos e valores
            $camposNomes = implode('`, `', array_keys($data));
            $camposValores = ':' . implode(', :', array_keys($data));

            // Prepara a Query
            $sth = $this->prepare("INSERT INTO $table (`$camposNomes`) VALUES ($camposValores)");

            // Define os dados
            foreach ($data as $key => $value) {
                // Se o tipo do dado for inteiro, usa PDO::PARAM_INT, caso contr�rio, PDO::PARAM_STR
                $tipo = (is_int($value)) ? PDO::PARAM_INT : PDO::PARAM_STR;

                // Define o dado
                $sth->bindValue(":$key", $value, $tipo);
            }

            // Executa
            $sth->execute();

            // Retorna o ID desse item inserido
            return $this->lastInsertId();
    }