我们开发插件、主题时,需要数据库储存我们的信息。然后我就写了一个函数,用来新建数据表的。
function wpzan_install(){//赞MySQLglobal $wpdb;$wpzan_table_name = "ueszan";if( $wpdb->get_var("show tables like '{$wpzan_table_name}'") != $wpzan_table_name ) {$wpdb->query("CREATE TABLE {$wpzan_table_name} (id BIGINT(20) NOT NULL AUTO_INCREMENT,post_id BIGINT(20) NOT NULL,user_id BIGINT(20) NOT NULL,UNIQUE KEY id (id)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1");}}wpzan_install();function wpzan_install(){//赞MySQL global $wpdb; $wpzan_table_name = "ueszan"; if( $wpdb->get_var("show tables like '{$wpzan_table_name}'") != $wpzan_table_name ) { $wpdb->query("CREATE TABLE {$wpzan_table_name} ( id BIGINT(20) NOT NULL AUTO_INCREMENT, post_id BIGINT(20) NOT NULL, user_id BIGINT(20) NOT NULL, UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); } } wpzan_install();function wpzan_install(){//赞MySQL global $wpdb; $wpzan_table_name = "ueszan"; if( $wpdb->get_var("show tables like '{$wpzan_table_name}'") != $wpzan_table_name ) { $wpdb->query("CREATE TABLE {$wpzan_table_name} ( id BIGINT(20) NOT NULL AUTO_INCREMENT, post_id BIGINT(20) NOT NULL, user_id BIGINT(20) NOT NULL, UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); } } wpzan_install();
但似乎不是很好,于是,又封装了一下。
function mysql_table_create($tablename,$tableth){//新建mysql表格global $wpdb;if( $wpdb->get_var("show tables like '{$tablename}'") != $tablename ) {$wpdb->query("CREATE TABLE {$tablename} (id BIGINT(20) NOT NULL AUTO_INCREMENT,${tableth}UNIQUE KEY id (id)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1");}}function mysql_table_create($tablename,$tableth){//新建mysql表格 global $wpdb; if( $wpdb->get_var("show tables like '{$tablename}'") != $tablename ) { $wpdb->query("CREATE TABLE {$tablename} ( id BIGINT(20) NOT NULL AUTO_INCREMENT, ${tableth} UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); } }function mysql_table_create($tablename,$tableth){//新建mysql表格 global $wpdb; if( $wpdb->get_var("show tables like '{$tablename}'") != $tablename ) { $wpdb->query("CREATE TABLE {$tablename} ( id BIGINT(20) NOT NULL AUTO_INCREMENT, ${tableth} UNIQUE KEY id (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); } }
要调用的时候
$tablename = "shoucang";//表名$tableth = "siteid BIGINT(20) NOT NULL,userid BIGINT(20) NOT NULL,";//表头mysql_table_create($tablename,$tableth);$tablename = "shoucang";//表名 $tableth = "siteid BIGINT(20) NOT NULL,userid BIGINT(20) NOT NULL,";//表头 mysql_table_create($tablename,$tableth);$tablename = "shoucang";//表名 $tableth = "siteid BIGINT(20) NOT NULL,userid BIGINT(20) NOT NULL,";//表头 mysql_table_create($tablename,$tableth);
完美,在要建立多个表的时候方便多了。
展示下别人写的例子:
function zeke_chojiang(){global $wpdb;$db_table_name = $wpdb->prefix . 'zeke_chojiang'; // 数据库名$charset_collate = $wpdb->get_charset_collate();//检查是否存在数据库表if($wpdb->get_var( "show tables like '$db_table_name'" ) != $db_table_name ){$sql = "CREATE TABLE $db_table_name (`id` int(11) NOT NULL AUTO_INCREMENT,`chojiang_user` varchar(2550) DEFAULT NULL COMMENT '奖品用户',`chojiang_type` varchar(50) DEFAULT NULL COMMENT '奖品类型',`chojiang_shu` int(11) DEFAULT 0 COMMENT '奖励数额',`title` longtext DEFAULT NULL COMMENT '奖品标题',`content` longtext DEFAULT NULL COMMENT '内容',`create_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '奖品时间',`modified_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',PRIMARY KEY (`id`)) $charset_collate;";require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );dbDelta( $sql );add_option( 'test_db_version', $test_db_version );}}zeke_chojiang();function zeke_chojiang() { global $wpdb; $db_table_name = $wpdb->prefix . 'zeke_chojiang'; // 数据库名 $charset_collate = $wpdb->get_charset_collate(); //检查是否存在数据库表 if($wpdb->get_var( "show tables like '$db_table_name'" ) != $db_table_name ) { $sql = "CREATE TABLE $db_table_name ( `id` int(11) NOT NULL AUTO_INCREMENT, `chojiang_user` varchar(2550) DEFAULT NULL COMMENT '奖品用户', `chojiang_type` varchar(50) DEFAULT NULL COMMENT '奖品类型', `chojiang_shu` int(11) DEFAULT 0 COMMENT '奖励数额', `title` longtext DEFAULT NULL COMMENT '奖品标题', `content` longtext DEFAULT NULL COMMENT '内容', `create_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '奖品时间', `modified_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间', PRIMARY KEY (`id`) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); add_option( 'test_db_version', $test_db_version ); } } zeke_chojiang();function zeke_chojiang() { global $wpdb; $db_table_name = $wpdb->prefix . 'zeke_chojiang'; // 数据库名 $charset_collate = $wpdb->get_charset_collate(); //检查是否存在数据库表 if($wpdb->get_var( "show tables like '$db_table_name'" ) != $db_table_name ) { $sql = "CREATE TABLE $db_table_name ( `id` int(11) NOT NULL AUTO_INCREMENT, `chojiang_user` varchar(2550) DEFAULT NULL COMMENT '奖品用户', `chojiang_type` varchar(50) DEFAULT NULL COMMENT '奖品类型', `chojiang_shu` int(11) DEFAULT 0 COMMENT '奖励数额', `title` longtext DEFAULT NULL COMMENT '奖品标题', `content` longtext DEFAULT NULL COMMENT '内容', `create_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '奖品时间', `modified_time` datetime DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间', PRIMARY KEY (`id`) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); add_option( 'test_db_version', $test_db_version ); } } zeke_chojiang();
以前写过的插件新建自定义数据表:
© 版权声明
THE END
暂无评论内容