Gỡ bỏ các lệnh SQL trong phpBB3

August 16, 2012
Làm sao để gỡ bỏ lệnh SQL khi hack MOD?
Có 1 số MOD khi tiến hành cài đặt sẽ yêu cầu bạn cập nhật cơ sở dữ liệu (Lệnh SQL). Nhưng nếu bây giờ, vì 1 lý do nào đó bạn không muốn sử dụng MOD đó nữa, và muốn gỡ bỏ lệnh SQL đã từng cập nhật khi cài MOD thì sao?
Bài viết này mình sẽ tổng hợp 1 số lệnh SQL tạo và gỡ bỏ tương ứng.
1. Lệnh CREATE TABLE
Lệnh tạo:
CREATE TABLE phpbb_abc (...);
Lệnh gỡ bỏ:
DROP TABLE phpbb_abc;
Ví dụ cụ thể:
Lệnh tạo:
CREATE TABLE phpbb_express_categories (
cat_id mediumint(8) UNSIGNED NOT NULL auto_increment,
cat_name varbinary(255) DEFAULT '' NOT NULL,
cat_order mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
cat_icon varbinary(255) DEFAULT '' NOT NULL,
cat_articles mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
cat_desc varbinary(255) DEFAULT '' NOT NULL,
display_on_index tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
PRIMARY KEY (cat_id),
KEY cat_order (cat_order)
);
Lệnh gỡ bỏ:
DROP TABLE phpbb_express_categories;
2. Lệnh ALTER TABLE
Lệnh tạo:
ALTER TABLE phpbb_abc ADD field1...;
Lệnh gỡ bỏ:
ALTER TABLE phpbb_abc DROP field1;
Ví dụ cụ thể 1:
Lệnh tạo:
ALTER TABLE phpbb_groups ADD group_icon VARCHAR(255) NOT NULL;
Lệnh gỡ bỏ:
ALTER TABLE phpbb_groups DROP group_icon;
Ví dụ cụ thể 2:
Lệnh tạo:
ALTER TABLE phpbb_abc ADD FULLTEXT (field1);
ALTER TABLE phpbb_abc ADD INDEX (field1);
ALTER TABLE phpbb_abc ADD UNIQUE (field1);
ALTER TABLE phpbb_abc ADD PRIMARY KEY (field1);
Chú ý: Một field chỉ có thể được thiết lập 1 trong 4 loại khóa: FULLTEXT, INDEX, UNIQUE hay PRIMARY KEY. Cách gỡ bỏ khóa INDEX tương tự với UNIQUE và FULLTEXT, nghĩa là bạn muốn xóa UNIQUE hay FULLTEXT vẫn dùng lệnh DROP INDEX chứ không có trường hợp DROP UNIQUE hay DROP FULLTEXT.
Lệnh gỡ bỏ:
ALTER TABLE phpbb_abc DROP INDEX (field1);
ALTER TABLE phpbb_abc DROP PRIMARY KEY (field1);
3. Lệnh INSERT INTO
Lệnh tạo:
INSERT INTO phpbb_abc (field1, field2) VALUES ('text1', 'text2');
Lệnh gỡ bỏ:
DELETE FROM phpbb_abc WHERE field1 = 'text1' AND field2 = 'text2';
Ví dụ cụ thể:
+ Với phpbb_config chỉ cần xác định theo config_name:
Lệnh tạo:
INSERT INTO phpbb_config (config_name, config_value) VALUES ('group_icons_path', 'images/group_icons');
Lệnh gỡ bỏ:
DELETE FROM phpbb_config WHERE config_name = 'group_icons_path';
+ Với phpbb_acl_options chỉ cần xác định theo auth_option:
Lệnh tạo:
INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('a_express', '1', '0', '0');
Lệnh gỡ bỏ:
DELETE FROM phpbb_acl_options WHERE auth_option = 'a_express';
4. Lệnh UPDATE
Lệnh tạo:
UPDATE phpbb_abc SET field1 = 'giá_trị_mới' WHERE field2 = 'text2';
Lệnh phục hồi:
UPDATE phpbb_abc SET field1 = 'giá_trị_cũ' WHERE field2 = 'text2';
Ví dụ cụ thể:
Lệnh tạo:
UPDATE phpbb_config SET config_value = '1' WHERE config_name = 'active_sessions';
Lệnh gỡ bỏ:
UPDATE phpbb_config SET config_value = '0' WHERE config_name = 'active_sessions';
Nguồn tham khảo: http://4phpbb.com/viewtopic.php?f=14&t=4185