承接上文完善广告位插件,现在完善插件安装的时候创建数据表ad和ad_category表。

需要创建什么表?

表中需要哪些字段?

第一个问题:为了实现分类所以需要创建广告位分类表ad_category,那我们需要再创建一个广告位表ad。

第二个问题:基于第一个问题,分类表需要字段:title:分类名称,pid:分类父级ID,status:状态,create_time:添加时间。

广告位表:title:广告位名称,url:跳转连接,pid:分类ID,cover_id:广告位图片,status:广告位状态,create_time:添加时间。

通过以上字段需求,写出一些SQL语句:

ad_category表SQL:

CREATE TABLE IF NOT EXISTS `{$table_ad_category}` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(50) NOT NULL,
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级ID',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `status` tinyint(4) DEFAULT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

ad表SQL:

CREATE TABLE IF NOT EXISTS `{$table_ad}` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(50) NOT NULL,
  `cover_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '图片ID',
  `url` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转连接',
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级分类ID',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `status` tinyint(4) DEFAULT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

插件入口文件中安装函数,和卸载函数:


    public function install(){
            $db_prefix = C('DB_PREFIX');
            $table_ad_category = "{$db_prefix}ad_category";
            $table_ad = "{$db_prefix}ad";
            $sql_category=<<<SQL
CREATE TABLE IF NOT EXISTS `{$table_ad_category}` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(50) NOT NULL,
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级ID',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `status` tinyint(4) DEFAULT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SQL;
            D()->execute($sql_category);
            if(count(M()->query("SHOW TABLES LIKE '{$table_ad_category}'")) != 1){
                session('addons_install_error', ',ad_category表未创建成功,请手动检查插件中的sql,修复后重新安装');
                return false;
            }
            $sql_ad=<<<SQL
CREATE TABLE IF NOT EXISTS `{$table_ad}` (
  `id` int(10) unsigned NOT NULL,
  `title` varchar(50) NOT NULL,
  `cover_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '图片ID',
  `url` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转连接',
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父级分类ID',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `status` tinyint(4) DEFAULT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SQL;
            D()->execute($sql_ad);
            if(count(M()->query("SHOW TABLES LIKE '{$table_ad}'")) != 1){
                session('addons_install_error', ',ad表未创建成功,请手动检查插件中的sql,修复后重新安装');
                return false;
            }
            return true;
    }
    public function uninstall(){
        $db_prefix = C('DB_PREFIX');
        $sql_category = "DROP TABLE IF EXISTS `{$db_prefix}ad_category`;";
        D()->execute($sql_category);
        $sql_ad = "DROP TABLE IF EXISTS `{$db_prefix}ad`;";
        D()->execute($sql_ad);
        return true;
    }

进入后台插件管理找到广告位插件,点击安装,安装成功。


Navicat For MySql 数据库管理中找到数据库,打开看下表是否创建成功。

好啦!数据库表创建成功了,后续完善完善后台广告位插件的功能,现在是空的,看图。


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部