wordpress 新建数据表储存信息

        我们开发插件、主题时,需要数据库储存我们的信息。然后我就写了一个函数,用来新建数据表的。

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

        要调用的时候

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

以前写过的插件新建自定义数据表:

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享