摘要:为什么需要Debugger?很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。什么是Xdebug?Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。Xdebug现在的最新版本是xdebug 2.0
阅读全文
摘要:1. 下载XDebug二进制文件: http://www.xdebug.org/download.php 5.2 http://www.xdebug.org/files/php_xdebug-2.1.0-5.2-vc6.dll 5.3 http://www.xdebug.org/files/php_xdebug-2.1.0-5.3-vc6.dll2. 找到php.ini3. 如果配置过 ZendOptimizer, 需要先屏蔽 ZendOptimizer 有关的配置, 通常如下: [Zend] zend_extension_manager.optimizer_ts="path\Zen
阅读全文
摘要:一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息(个人认为这是GET和POST的本质区别,也是协议设计者的本意,
阅读全文
摘要:介绍一个非常有用的mysql启动参数 --skip-grant-tables。顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。 操作方法: 1、杀掉原来进行着的mysql:rcmysqldstop或者:servicemysqldstop或者:kill-TERMmysqld 2、以命令行参数启动mysql:/usr/bin/mysqld_safe--skip-grant-tables& 3、修改管理员密码:usemysql;updateusersetpassword=password('yournewpassword
阅读全文
摘要:MySQL导出的SQL语句在导入时有可能会非常非常慢,在处理百万级数据的时候,可能导入要花几小时。在导出时合理使用几个参数,可以大大加快导 入的速度。-e 使用包括几个VALUES列表的多行INSERT语法;--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。首先确定目标数据库的参数值mysql>
阅读全文
摘要:一,mysql replication是什么,干什么用的MySQL replication提供了数据库复制的功能,可以实现多个数据库实时同步,具体如果下图:mysql replication 数据同步我们为什么要用mysql replication呢,当你的网站一天的独立IP流量能达到100W时,全部流量能达到1000W时,单个服务器,根本无法满足现有需要,100W,1000W就是举个例子。尽管你做了许多的技术上面的措施,比如内存缓存(如memcache),文件缓存啊,对于大数据量表进行分表啊等等,还是网站还是挺慢的(这可能有多方面原因),在这儿只是以MYSQL为例。二,mysql repli
阅读全文
摘要:转载自:http://dev.firnow.com/course/3_program/shell/shelljs/20090828/172746.htmlbash下有很多像{}、[]等一些符号命令,下面是我对一些常用的符号命令的学习笔记,若有错误或纰漏望各位兄弟指正。一、.(source).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个子shell去执行的)。所以在设置bash的环境的变量时,就必
阅读全文
摘要:BASH只支持一维数组,但参数个数没有限制。声明一个数组:declare -a array(其实不用声明,按数组方式直接赋值给变量即可,BASH就知道那是数组)数组赋值:(1) array=(var1 var2 var3 ... varN)(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)(3) array[0]=var1 arrya[1]=var2 ... array[n]=varN 计算数组元素个数:${#array[@]} 或者 ${#array[*]}BASH的特殊参数 @ 和 * 都表示“扩展位置参数,从1开始”,但形式稍有差...
阅读全文
摘要:比如 url=/home/g0/ss.txt 我想把目录和文件分开 u=/home/g0/ file=ss.txt试试 basename命令和dirname命令 basename是取文件名,dirname是取目录。看下面的例子: shell> url=/home/g0/ss.txt shell> base=`basename $url` shell>echo $base 结果为:ss.txt shell> url=/home/g0/ss.txt shell> base=`dirname $url` shell> echo $base 结果为:/home/g0
阅读全文
摘要:linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法变量替换和变量默认值设置是紧密相关的,至少从概念出发是如此。参数扩张是将类似于变量的参数用它的值来替换。例如以“echo $VAR”的形式调用一个简单的变量。此外还有更多的特性可以访问。这个句法还包含一些没有扩展的特性,虽然这些特性自身很有意义。首先,这类特性执行默认变量赋值。使用这些特性时,整个表达式需要用花括号括起来。: ${VAR:=”some default”}这些代码开始的冒号是一个正确执行非活动任务的shell命令。在这个句法中,它仅仅扩展了行中紧随其后的所有参数。本例
阅读全文
摘要:shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真 -p 当file存在并且是命令管道时返回为真 -r 当由pathnam...
阅读全文
摘要:在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判断生成不同的最终文件等等。一、cat和EOFcat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;EOF是“end of file”,表示文本结束符。结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。二、使用看例子是最快的熟悉方法:# cat << EOF > test.sh> #!/bin/bash> #you Shel
阅读全文
摘要:-- 按照时间条件declare-- Local variables herev_stat VARCHAR2(100) := 'to_date(''2011-12-28'',''yyyy-mm-dd'')';cursor mycur isselect 'DELETE FROM ' || table_name || ' where stat_time < ' || v_stat || ';' gofrom user_tables;tableinfo VARCHAR
阅读全文
摘要:公司的oracle服务器上有多个用户,每个用户有一些相同的表。由于表的数据量比较大,这些表每月都要增加表空间和表分区。为了方便处理,就写了一个计划任务自动处理分区和空间。添加/删除表分区需要相应的权限 我们知道,用户拥有的role权限在存储过程是不可用的。遇到这种情况,我们一般需要显式授权,如grant create table to usera;但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程,实际上,oracle给我们提供了在存储过程中使用role权限的方法:修改存储过程,加入Authid Current_User时存储过程可以使用role权限 1 -- 自动管理分区程序.
阅读全文
摘要:1.隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误.由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Oracle,这样会导致索引失效.错误的例子:select * from test where tu_mdn=13333333333;正确的例子:select * from test where tu_mdn='13333333333';2. 对索引列进行运算导致索引失效,我所指的对索引列进行运算包括(+,-,*,/,! 等)错误的例子:select * from test where id-1
阅读全文