wp query – how do I use a transient method?

It has been suggested to use a temporary method to remove the duplicate queries

Why does not this work? Is it the wrong way to use it?

 private function get_acf_list()
  {
      if(!class_exists('acf')){
        return array();
      }
      global $wpdb;
      if ( false === ( $pgggo_qry = get_transient( 'pgggo_acf_query_results' ) ) ) {
        // It wasn't there, so regenerate the data and save the transient
        $pgggo_qry = "SELECT post_excerpt as 'field_name', post_title as 'field_label' FROM {$wpdb->prefix}posts where post_type = 'acf-field'";
        set_transient( 'pgggo_acf_query_results', $pgggo_qry, 12 * 7200 );
      }

      $pgggo_list_results = $wpdb->get_results($pgggo_qry, ARRAY_A);
      $acf_field_array    = array();
      if (!empty($pgggo_list_results)) {
          foreach ($pgggo_list_results as $value) {
              $acf_field_array($value('field_name')) = $value('field_label');
          }
      }
      return $acf_field_array;
  }