|
之所以写了这个东东,是因为之前我的论坛发生了灵异扣钱事件。。
一直不知道原因,后来想到监听所有的sql语句,最后才发现了原因所在,并因此有了这个简陋的监听器。。
使用方法:
先备份require/db_mysql.php
然后将包里文件覆盖进去。
修改
if(1 || ( substr($sql,0,6)=="UPDATE" && (strpos($sql,"MEMBERDATA")>0) && (strpos($sql,"MONEY")>0)))
//符合条件的,自动添加到文件里去。在这里增加要监听的条件。前面的1是强制监听所有记录
这里的条件,以满足监听要求。如果是为了解决query过多问题,就用这个默认的好了,能记录所有的查询语句
监听日志会保存在data/目录下,命名为sql_月日.log
比如今天是8月10号,则会命名为data/sql_810.log
一行一条记录,可记录 查询时间、文件、IP、查询语句
这样可以方便查看是哪些sql出现了问题,以便解决问题。
比如说是,以下是我的测试数据
Quote:
08/10/06 17:19:08 /zjoubbs/index.php 127.0.0.1 SELECT F.FID,F.FUP,F.TYPE,F.LOGO,F.NAME, F.DESCRIP,F.FORUMADMIN,F.ACROSS,F.ALLOWHTM,F.PASSWORD,F.ALLOWVISIT,F.F_TYPE,F.CMS,FD.TPOST,FD.TOPIC,FD.ARTICLE,FD.SUBTOPIC,FD.TOP1,FD.LASTPOST FROM PW_FORUMS F LEFT JOIN PW_FORUMDATA FD USING(FID) WHERE F.IFSUB='0' AND F.CMS!='1' ORDER BY F.VIEWORDER
08/10/06 17:19:09 /zjoubbs/index.php 127.0.0.1 SELECT * FROM PW_BBSINFO WHERE ID=1
08/10/06 17:19:09 /zjoubbs/index.php 127.0.0.1 SELECT * FROM PW_BBSINFO WHERE ID=1
呵呵
PS。当遇到首页查询失败时,如果是update pw_threads set hits=hits+1…………之类的语句过多,不用多说,直接将data/bbscache/hits.txt文件重命名,即可解决这个问题
开关位置:
在require/db_mysql.php里找到$_debug=1;
改成0就恢复正常了。改成1就开始监听了db_mysql.rar
|
一共有 15 条评论
Quote:
谢谢,师父~
呵呵。
只要开一会儿就够了的
Quote:
…………你条件没分啊…………
说明你的查询量也挺大的,这个只要开一小会儿就行了
每次都板凳
汗,hits实例指的是我,嘎嘎,我的首页查询147个,后来用笨笨的这个工具才查出来!