$wpdb->insert no funciona de ninguna manera
Sé que este tipo de pregunta se ha hecho una y otra vez, pero no pude encontrar una solución para mi problema, así que espero que puedan ayudarme. Estoy usando WP 3.3. y he creado una tabla personalizada. Ahora quiero insertar algunos datos en ella, pero no logro que funcione. Este es mi código:
global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
'my_id' => NULL,
'my_day' => $day,
'my_month' => $month,
'my_abbr' => $abbr,
'my_venue' => $venue,
'my_geo' => $geo_one.", ".$geo_two,
'my_artist' => $artist,
'my_link' => $link
)
);
Llevo varias horas intentando insertar datos sin éxito. A mi parecer el código es correcto, pero supongo que me estoy perdiendo algo importante aquí. ¡Cualquier indicación sería apreciada! Gracias

Cuando el método $wpdb
no funciona como debería, es probable que haya un problema con la consulta SQL resultante (debido a una entrada incorrecta u otro motivo).
Sigue la referencia de wpdb en el Codex
para solucionar problemas:
- activa la visualización de errores de la base de datos mediante
$wpdb->show_errors()
- verifica qué consulta se está formando y ejecutando mediante
$wpdb->last_query

La clase wpdb
no tiene un método de inserción. Lo mejor sería que no usaras la consulta; revisa el codex y no encontrarás esta función insert()
- http://codex.wordpress.org/Class_Reference/wpdb
Un ejemplo de inserción en una tabla personalizada con WPDB; usa una sintaxis SQL CREATE TABLE
predeterminada y crea la tabla con tus valores usando el método query()
de wpdb
.
$table = $GLOBALS['wpdb'] -> prefix . 'my_data';
$GLOBALS['wpdb'] -> query(
"CREATE TABLE $table (
called_by varchar(96) NOT NULL,
my_name varchar(96) NOT NULL,
my_type varchar(15) NOT NULL,
first_call int(11) NOT NULL,
arg_count tinyint(4) NOT NULL,
file_name varchar(128) NOT NULL,
line_num smallint NOT NULL,
PRIMARY KEY (first_call, my_name) )"
);
Para insertar este código, usa el hook register_activation_hook()
; solo durante la activación, el plugin instalará la tabla si no existe. En register_uninstall_hook()
elimino las tablas personalizadas.

wpdb
sí tiene el método insert()
