MySql数据库建表更改问题

我是emlog博客系统。数据库不太懂
想添加一个按钮,判断数据库中表是否存在,不存在就建立


$sql = "ALTER TABLE ".DB_PREFIX."blog ADD `zuijia` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态,1正常,2禁用'";

emlog的数据库建立如上面一样写的

存在的话状态点击按钮变成2,默认是1
大概是这样写的,不过我写的有点问题


$db->query("update ". DB_PREFIX ."blog SET zuijia=2 where gid=$logid");

有个点赞的例子


function syzan() {
    $DB = MySql::getInstance();
    if($DB->num_rows($DB->query("show columns from ".DB_PREFIX."blog like 'zuijia'")) == n) {
        $sql = "ALTER TABLE ".DB_PREFIX."blog ADD `zuijia` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态,1正常,2禁用'";
        $DB->query($sql);
    }
}
syzan();
//UPDATE emlog_blog SET gid=gid+'2000'
function update($logid) {
    $logid = intval($_POST['id']);
    $DB = Database::getInstance();
    $db->query("update ". DB_PREFIX ."blog SET zuijia=2 where gid=$logid");

}

上面是点赞的例子,想改成我所需要的,然后用按钮实现

按如下方式试下:

#判断表是否存在
        $exist = Db::query('show tables like "table_name_' . $store_id . '"');
        if (empty($exist)) {
            $sql = "CREATE TABLE `table_name_{$store_id}` (
                   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
                  `goods_id` int(11) unsigned NOT NULL COMMENT '图片的id',
                  `store_id` int(11) unsigned DEFAULT NULL,
                  `main_figure` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '主图,1;非主图,2',
                  `sort_order` smallint(5) unsigned NOT NULL DEFAULT '0',
                  `color` mediumint(8) unsigned DEFAULT NULL COMMENT '颜色',
                  `path` varchar(255) DEFAULT NULL COMMENT '图片的路径',
                  `status` tinyint(3) DEFAULT '0' COMMENT '状态,1=已生成,0=未生成图片',
                  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
                  `update_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
                  PRIMARY KEY (`id`)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品图片表';";
            Db::execute($sql);
        }