$wpdb->insert not working in any way

I know this type of question has been asked over and over, but I couldn’t find a solution for my problem, so I hope you can help me. I am using WP 3.3. and I have created a custom table. Now I want to insert some data into it, but I can’t get it working. This is my code:

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
                )
                );

I am trying to insert data for several hours now without luck. To my eyes the code is correct, but I guess I am just mussing something important here. Any pointers would be appreciated! Thank you

Related posts

Leave a Reply

2 comments

  1. When $wpdb method doesn’t perform as it should it is likely issue with resulting SQL query (because of wrong input or something else).

    Follow wpdb reference in Codex for troubleshooting:

    • enable database error display via $wpdb->show_errors()
    • check what query is being formed and run via $wpdb->last_query
  2. The wpdb-class does not have an insert method. It would be best if you didn’t use the query; see the codex, and you don’t find this function insert()http://codex.wordpress.org/Class_Reference/wpdb

    An example of inserting a custom table on WPDB; use a default CREATE TABLE-SQL Syntax and create with the query() of wpdb the table with your values.

            $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) )"
            );
    

    To insert this source, use the register_activation_hook()-hook; only on activation, the plugin will install the table if it doesn’t exist. On register_uninstall_hook() I delete custom tables.