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 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
喜欢就支持一下吧
点赞9 分享
The wise man is always a good listener.
智慧比财富更宝贵
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容