- 浏览: 439135 次
- 性别:
- 来自: 深圳
-
最新评论
-
fufu0414:
PHP类实例教程:abstract类和abstract方法 -
fufu0414:
[list][url][img][img][img][list ...
PHP类实例教程:abstract类和abstract方法
文章列表
有一篇不错的关于mysql优化的文章,无非都是从硬件,SQL语句方面进行入手,当然这里面最重要的是 sql 语句了,所以我们要经常 trace 这些 sql 语句。mysql slow log 是用来记录执行时间较长(超过long_query_time秒)的sql的一种日志工具! 启用 slow log有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name]2, 在mysqld进程启动时,指定–log-slow-queries[=file_name]选项
[mysqld]
log-slow-queries
log_query_time ...
- 2010-03-18 17:26
- 浏览 764
- 评论(0)
Xdebug配置
第一部分:安装预编译模块安装预编译模块是很容易的。只需要将它们放到一个目录中,并将下面的内容添加到php.ini中:(不要忘记更改路径和文件名为你自己的值,并确信你使用的是完整路)zend_extension_ts = "c:/ph ...
- 2010-03-18 13:59
- 浏览 657
- 评论(0)
(1)确认一下3306是否对外开放,mysql默认状态下是不开放对外访问功能的。查看的办法如下:
Java代码
~# netstat -an | grep 3306
tcp00
127.0.0.1:33060.0.0.0:*
LISTEN
从上面可以看出,mysql的3306端口只是监听本地的连接,这样就阻碍了外部IP对该数据库的访问,修改的办法其实很简单,进入到mysql的配置文件所在目录(/etc/mysql/my.cnf)下,找到文件中的如下内容:
Java代码
# Instead of skip-networking ...
- 2010-03-17 14:55
- 浏览 925
- 评论(0)
当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。 所有其他信息作为能被所有人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh(见http://www.cs.hut.fi/ssh)。用他,你能在一个MySQL服务器和一个MySQL客户之间得到一个加密的TCP/IP连接。 为了使一个MySQL系统安全,强烈需求你考虑下列建议: 1:对所有MySQL用户使用口令。记住,如果other_user没有口令,所有人能简单地用mysql -u other_user db_name作为所有其 ...
- 2010-03-17 14:35
- 浏览 1376
- 评论(0)
在之前的项目中,遇到这个一个问题,实现跨域跨服务器间进行通信.虽然在之前简老师有和我说过通行证的原理,因为没有进行过实际的操作,也没有太大的把握可以通过通行证的方式实现这个需求.上网找了一下资料,发现有P3P的这个协议,它的定义是:
P3P是万维网联盟(W3C)公布的一项隐私保护推荐标准,旨在为网上冲浪的Internet用户提供隐私保护。现在有越来越多的网站在消费者访问时,都会收集一些用户信息。制定P3P标准的出发点就是为了减轻消费者因网站收集个人信息所引发的对于隐私权可能受到侵犯的忧虑。P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些人、信息将 ...
- 2010-03-05 11:10
- 浏览 736
- 评论(0)
三年前转语言做了J2ee,今天我又回到的原点。三年前我用PHP的开发网站的方式进入了软件这个行业,没想到现在我又回来了,挣扎着痛苦的回来了。
将来的软件开发和管理我将专注于互联网技术的发展。
牢骚发完了。现在让我来记录一下我对SESSION的浅见吧。
通过ini_set('session.use_trans_sid', 0);设置运行环境中关于SESSION的参数设置。
session_set_save_handler('mysession_open', 'mysession_close', 'mysession_read', 'mysession_write', 'mysession_ ...
- 2010-03-05 09:02
- 浏览 695
- 评论(0)
现在大概列出如下:
1.数据库的设计
尽量把数据库设计的更小的占磁盘空间.
1).尽可能使用更小的整数类型.(mediumint就比int更合适).
2).尽可能的定义字段为not null,除非这个字段需要null.(这个规则只适合字段为KEY的情形)
3).如 ...
- 2010-02-23 11:04
- 浏览 669
- 评论(0)
普遍缓存技术
数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样 ...
- 2010-02-21 16:36
- 浏览 351
- 评论(0)
有时候想把前后两个字符的顺序交换一下,比如 calss 改成 class,如果要切换到输入模式以后,删除,插入,再退出输入模式,然后保存,很浪费时间。在vim命令模式下,只要把光标移动到 a的前面,输入 x ,然后 p ,这样 a 和 l 的顺序就换过来了。
- 2010-02-10 00:07
- 浏览 464
- 评论(0)
Try-catch 语句
为了进一步处理异常,我们需要使用try-catch语句—包括Try语句和至少一个的catch语句。任何调用 可能抛出异常的方法的代码都应该使用try语句。Catch语句用来处理可能抛出的异常。以下显示了我们处理getCommandObject()抛出的异常的方法:
index_php5.php 后半段
<?php
// PHP 5
try {
$mgr = new CommandManager();
$cmd = $mgr->getCommandObject('realcommand');
$cmd-&g ...
- 2010-01-31 01:17
- 浏览 390
- 评论(0)
使用 throw关键字
建立一个Exception对象后你可以将对象返回,但不应该这样使用,更好的方法是用throw关键字来代替。throw用来抛出异常:
<?php
throw new Exception( "my message", 44 );
?>
throw 将脚本的执行中止,并使相关 ...
- 2010-01-31 00:56
- 浏览 368
- 评论(0)
PHP5的异常机制
根据我们以上讨论的,PHP内建的异常类需要有以下成员方法:
__construct()
构造函数,需要一个出错信息和一个可选的整型错误标记作参数
getMessage()
取得出错信息
getCode()
出错的代码
getFile()
异常发生的文件
getLine()
异常发生的行数
getTrace()
跟踪异常每一步传递的路线,存入数组,返回该数组
getTraceAsString()
和getTrace()功能一样,但可以将数组中的元素转成字符串并按一定格式输出
...
- 2010-01-31 00:51
- 浏览 296
- 评论(0)
综合以上的讨论,我们需要一个这样的错误处理机制:
1.允许一个方法给出一个出错标记给客户代码
2.提供程序错误的详细信息
3.让你同时判断多个出错条件,将你的错误报告和程序处理流程分开。
4.返回值必须是独立的类型,不会与正常返回的类型相混淆
PHP的异常机制恰好完全满足以上要求。
- 2010-01-31 00:49
- 浏览 473
- 评论(0)
(三)使用PEAR处理错误
你也可以使用PEAR来处理错误。当发生错误,将返回一个 Pear_Error对象。后面的代码通过一个静态方法PEAR::isError()来检验这个对象。如果错误确实发生了,那么返回的Pear_Error对象将提供你需要的所有相关信息:
PEAR::getMessage()
- the error message 出错信息
PEAR::getType()
- the Pear_Error subtype 错误类型
PEAR::getUserInfo()
- additional information about the err ...
- 2010-01-31 00:42
- 浏览 395
- 评论(0)
(二)返回错误标记
脚本层次的错误处理比较粗糙但很有用。尽管如此,我们有时需要更大的灵活性。我们可以使用返回错误标识的办法来告诉客户代码“错误发生了!”。这将程序是否继续,如何继续的责任交给客户代码来决定。
这里我们改进了前面的例子来返回一个脚本执行出错的标志(false是一个常用的不错的选择)。
index3.php
<?php
// PHP 4
require_once('cmd_php4/Command.php');
class CommandManager {
var $cmdDir = "cmd_php4";
...
- 2010-01-31 00:39
- 浏览 375
- 评论(0)