Supporto » Fixing WordPress » $wpdb oggetto assente!

  • Ciao ragazzi.
    Ho una funzione all’interno di una classe che deve inserire una riga dentro il database, la riga viene inserita con successo e la funzione è la seguente:

    public function create_channel($name, $options) {
                global $wpdb;
                $opt_string = implode(';', $options);
                if(($userid = get_current_user_id()) > 0) {
                    $wpdb->insert($wpdb->prefix.'_channels', array(
                        'founder' => $userid,
                        'name' => $name,
                        'options' => $opt_string
                    ), array('%d','%s','%s'));
                    return $wpdb->insert_id;
                } else return false;
            }

    D’altra parte, la funzione viene chiamata in un hook di WordPress (plugin activation hook) e questa è la parte che riguarda il problema:

    $chan = new Channel();
            if($chan->count_channels() == 0) $cid = $chan->create_channel('Default', $settings->options['channel']);
            throw new Exception(var_export($cid));

    Il problema è che $cid (che dovrebbe essere $wpdb->insert_id è NULL nonostante la riga venga inserita con successo, e nonostante la procedura sia quella! Ho provato anche a prendere la variabile da MySQL con $wpdb->get_var(‘SELECT LAST_INSERT_ID();’); ma niente, anche cosi mi da un valore nullo!

    La tabella contiene una colonna AUTO_INCREMENT che è anche indicizzata da una chiave primaria, aiutatemi perché sto impazzendo da ore.
    ___

    Piccolo accorgimento:
    Mi sono accorto che nella funzione “create_channel”, prima che venga eseguito l’inserimento della riga, l’oggetto $wpdb può essere messo in mostra correttamente (throw new Exception(var_export($wpdb))), mentre subito dopo l’inserimento della riga, se viene rifatta la stessa operazione (ovvero throw new Exception ecc.. quella scritta qua sopra) l’oggetto è assente, praticamente non mostra nulla (nemmeno NULL), proprio 0 caratteri.

    Aiutatemi gentilmente, ve ne sarò grato!

Stai visualizzando 1 risposte (di 1 totali)
  • Moderatore Guido Scialfa

    (@wido)

    Ciao @syncroita,

    Giusto per curiosità, hai provato ad effettuare la chiamata agganciandoti a qualche altra azione? Che so wp_loaded per essere sicuri che ritorni correttamente il dato?

Stai visualizzando 1 risposte (di 1 totali)
  • Il topic ‘$wpdb oggetto assente!’ è chiuso a nuove risposte.