立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT升级至v2.1
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的免费网店托管-卖否
PHP实战精英班培训 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
注册付费广告征集
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
第二届PHP中国开源发展及人才状况调查
 16 12
发新话题
打印

[其他] 礼品商店

数据在哪里卸载?
顶阿 顶阿
顶阿 顶阿
这里有一关于如何卸载插件的数据表的文章,你自己研究一下吧,这也是在这找来的,好像原贴沉了~!

数据库反安装教程
每个数据库都要像作者索求反安装代码,这样有两点不好:

1. 会让作者感觉很难过,自己辛苦写的插件不被认同;
2. 每一个想要反安装的插件都向作者要...是不是很麻烦?

那么就教你如何自己学会反安装数据库的升级代码.

原创: oytktk(靖飒)

按情况, 数据库的升级代码可以分三个类别:


1. 建立一个或多个数据表;
2. 建立一个或多个字段;
3. 添加一个或多个字段的值;

针对以上情况,我们应该怎么判断我们升级的数据库代码属于哪一种类型的呢?

好让我们拿我的作品<鲜花鸡蛋送给作者>来说吧, 这个插件就要用到上面的前两个类别,让我们先来看看第一类:

一、 建立一个表:
复制内容到剪贴板代码:
CREATE TABLE `cdb_felog` (
`id` mediumint( 20 ) unsigned NOT NULL AUTO_INCREMENT ,
`fromuser` varchar( 15 ) NOT NULL default '',
`touser` varchar( 15 ) NOT NULL default '',
`asfe` varchar( 8 ) NOT NULL default '',
`score` int( 10 ) NOT NULL default '0',
`tid` varchar( 15 ) NOT NULL default '',
`aswhat` varchar( 100 ) NOT NULL default '',
PRIMARY KEY ( `id` )
) TYPE = MYISAM
判断依据: 以   CREATE TABLE   开头,后面跟数据表的名字:  CDB_XXX
结束标致: TYPE = ……

这类就属于上述的第一个类别:添加一个数据表!

反安装方法:
复制内容到剪贴板代码:
DROP TABLE CDB_XXX
方法简述:这类升级代码的反安装方法很简单,不管这个表有多大,你可需要用DROP TABLE后跟数据表的名字即可,例如我的鲜花鸡蛋插件以上的升级代码,反安装的代码如下:
复制内容到剪贴板代码:
DROP TABLE cdb_felog
二、建立一个或多个字段:

1)
复制内容到剪贴板代码:
ALTER TABLE `cdb_posts` ADD `flower` INT(10) DEFAULT '0' NOT NULL;
ALTER TABLE `cdb_posts` ADD `egg` INT(10) DEFAULT '0' NOT NULL;
ALTER TABLE `cdb_threads` ADD `flower` INT(10) DEFAULT '0' NOT NULL;
ALTER TABLE `cdb_threads` ADD `egg` INT(10) DEFAULT '0' NOT NULL;
或:

2)
复制内容到剪贴板代码:
ALTER TABLE `cdb_members` ADD `putsum` INT( 8 ) NOT NULL ,
ADD `audsum` INT( 8 ) NOT NULL ,
ADD `groomsum` INT( 8 ) NOT NULL ,
ADD `delesum` INT( 8 ) NOT NULL ,
ADD `audit` VARCHAR( 1 ) NOT NULL ;
判断依据: 以   ALTER TABLE   开头,后面跟数据表的名字:  CDB_XXX,再跟 ADD,再跟字段的名称!
注意事项: 这类升级代码有种简写的方式,如果升级一个表内的字段多于一个,就可以用简化方式写

以上1)升级代码是完整的写法,2)最简写;

两者的区别就在于不用多写  ALTER TABLE `数据表`
在同一个数据表里升级两个或以上的字段,就可以使用这种升级方式了。

反安装方法:

1)
复制内容到剪贴板代码:
ALTER TABLE `数据表1` DROP `字段名1`;
ALTER TABLE `数据表2` DROP `字段名1`;
2)
复制内容到剪贴板代码:
ALTER TABLE `数据表`
DROP `字段名1`,
DROP `字段名1`,
DROP `字段名1`;
方法简述:不管是第一个方法还是第二种方法,都可以完成对添加字段的反安装

只要把“数据表1"的名字替换成添加字段的表“CDB_XXX",再把“字段名1”替换成添加的字段名(ADD后的名字)。

例子:

以上1)的反安装代码为:
复制内容到剪贴板代码:
ALTER TABLE `cdb_posts` DROP `flower;
ALTER TABLE `cdb_posts` DROP `egg`;
ALTER TABLE `cdb_threads` DROP `flower`;
ALTER TABLE `cdb_threads` DROP `egg`;
2)的反安装代码为:
复制内容到剪贴板代码:
ALTER TABLE `cdb_members` DROP `,
DROP `audsum`,
DROP `groomsum` ,
DROP `delesum` ,
DROP `audit` ;
其实大家仔细观察一下就可以看出来,这类反安装代码其实就是把升级代码中的ADD改为DROP,并把字段名后的部分代码删除即可。

三、添加一个或多个字段的值:
复制内容到剪贴板代码:
INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attaopen', '1');
INSERT INTO `cdb_settings` (`variable`, `value`) VALUES ('attacoun', '15');
这类升级代码很少用,一段是用在SETTINGS表里。

其标致为:以INSERT INTO开头,后面是数据表的名字,第一个括号里面的是要加给值的字段名,第二个括号里的值是与第一个括号里对应的,分别是加到第一个括号里字段里的。

反安装代码:
复制内容到剪贴板代码:
DELETE FROM `cdb_settings` WHERE `variable` = 'attaopen' AND `value` = '1' ;
DELETE FROM `cdb_settings` WHERE `variable` = 'attacoun' AND `value` = '15' ;
方法简述:

先将升级代码中的INSERT INTO改为DELETE FROM, 在第一个括号前加个“ WHERE ”,然后是第一个括号里的值“variable”,再加“=”号,再加第二个括号里的第一个值“attaopen”,如果括号里的值不止一个,那再加“ ADD ”,再加第一个括号里的第二个值“value”,再加“=”号,再另第二个括号里的第二个值“1”,如果还有更多那就再加“ADD”再加第一个括号里的第三个……

这就是数据库反安装的基本方法。希望大家认真掌握自己动手进行数据库的反安装!
谢谢你的回复

可是我还是不明白,有没有志体的?
狼火火谢谢您<<<好人一个 ,可以有了,是我没把

ALTER TABLE `cdb_members` ADD `flowers` int(10) UNSIGNED NOT NULL default '0'

delete
 16 12
发新话题
版块跳转