Search code examples
mysqlwordpresswordpress-plugin-creation

mysql table not creating by wordpress plugin


I am using this code to create a table but it is not working 😒. I have tried a single line SQL query but is not working also (Not sure it is a nonsense try). Is there anyone to help me immediately to resolve this issue?

function rswl_activaiton(){
    global $wpdb;
    require_once(ABSPATH.'wp-admin/includes/upgrade.php');
    $table_name = $wpdb->prefix.'rswl_entries';
    $charset = $wpdb->get_charset_collate();
    if( $wpdb->get_var( "SHOW TABLES LIKE ".$table_name ) != $table_name ){
        $sql = "CREATE TABLE $table_name ( 
            rswl_entry_id INT(10) NOT NULL AUTO_INCREMENT,
            rswl_name VARCHAR(100) NOT NULL,
            rswl_model VARCHAR(100) NOT NULL,
            rswl_date VARCHAR(100) NOT NULL,
            rswl_ebay_id VARCHAR(100) NOT NULL,
            rswl_email VARCHAR(100) NOT NULL,
            rswl_status VARCHAR(100) NOT NULL
            PRIMARY KEY (rswl_entry_id)
        ) $charset;";
        dbDelta( $sql );
    };
}
register_activation_hook( __FILE__, 'rswl_activaiton' );

Solution

  • I've resolved the issue myself. I was missing a comma (,) after rswl_status VARCHAR(100) NOT NULL

    $sql = "CREATE TABLE $table_name ( 
                rswl_entry_id INT(10) NOT NULL AUTO_INCREMENT,
                rswl_name VARCHAR(100) NOT NULL,
                rswl_model VARCHAR(100) NOT NULL,
                rswl_date VARCHAR(100) NOT NULL,
                rswl_ebay_id VARCHAR(100) NOT NULL,
                rswl_email VARCHAR(100) NOT NULL,
                rswl_status VARCHAR(100) NOT NULL,
                PRIMARY KEY (rswl_entry_id)
            ) $charset;";