Creating database table when installing a wordpress plugin

admin

Administrator
Staff member
I want to create a table into the database upon installing the plugin I've created.

In my main plugin file (index.php):

Code:
register_activation_hook(__FILE__, 'wnm_install');

global $wnm_db_version;
$wnm_db_version = "1.0";

function wnm_install(){
global $wpdb;
global $wnm_db_version;
$sql = "CREATE TABLE tbl_campaigns (
campaignID int(11) NOT NULL AUTO_INCREMENT,
campaign_name varchar(128) NOT NULL,
start_duration date NOT NULL,
end_duration date NOT NULL,
activity varchar(500) NOT NULL,
survey_settings varchar(50) NOT NULL,
limit varchar(50) NOT NULL,
goal varchar(100) DEFAULT NULL,
PRIMARY KEY (campaignID)
) ;";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
add_option("wnm_db_version", $wnm_db_version);
}

I just followed the instructions from this <a href="http://codex.wordpress.org/Creating_Tables_with_Plugins" rel="nofollow noreferrer">http://codex.wordpress.org/Creating_Tables_with_Plugins</a>

But it doesn't work.

What seems to be the problem with this code?