$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!
- Il topic ‘$wpdb oggetto assente!’ è chiuso a nuove risposte.