我们开发插件、主题时,需要数据库储存我们的信息。然后我就写了一个函数,用来新建数据表的。
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
暂无评论内容