2011

Dec

08

Mac OS X 中配置PHP的MCrypt扩展
文章分类:PHP+MySQL

MCrypt是一个功能强大的加密算法扩展库,它包括有22种算法。Mac OS X 7预安装了PHP5.3.6,但没有安装MCrypt扩展,下面我们安装此扩展(据说安装前要先在电脑里安装XCODE,要不编译不了软件,因为我已经安装了xcode,所以无法验证是否必须先安装xcode);

1.下载并解压libmcrypt-2.5.8.tar.bz2

2.在终端执行如下命令:

......

2011

Mar

30

其实DA与CP的MySQL数据库也是可以外链的
文章分类:PHP+MySQL

习惯了使用navicat来操作MySQL数据库,毕竟是图形化的软件界面,比PHPMyAdmin要方便得多。

记得刚开始使用DA面板的时候,疯狂的使用navicat链接DA的数据库,但是用来没有成功过,还以为DA的数据库不能外链呢。最近发现,其实DA的数据库是可以外链的。

DA的数据库默认只让localhost链接,但是可以在后台添加链接的IP。

......

2011

Mar

14

PHP中范围解析操作符::的含义及使用方法
文章分类:PHP+MySQL

有时,在没有声明任何实例的情况下访问类中的函数或者基类中的函数和变量很有用处。而 :: 运算符即用于此情况。

<?php
class A {
    function example() {
        echo "I am the original function A::example().<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am the redefined function B::example().<br />\n";
        A::example();
    }
}

// A 类没有对象,这将输出
//   I am the original function A::example().<br />
A::example();

// 建立一个 B 类的对象
$b = new B;

// 这将输出
//   I am the redefined function B::example().<br />
//   I am the original function A::example().<br />
$b->example();
?>

上面的例子调用了 A 类的函数 example(),但是这里并不存在 A 类的对象,因此不能这样用 $a->example() 或者类似的方法调用 example()。反而我们将 example() 作为一个类函数来调用,也就是说,作为一个类自身的函数来调用,而不是这个类的任何对象。

这里有类函数,但没有类的变量。实际上,在调用函数时完全没有任何对象。因而一个类的函数可以不使用任何对象(但可以使用局部或者全局变量),并且可以根本不使用 $this 变量。

......

2011

Jan

09

重装系统后还原MySQL的方法
文章分类:PHP+MySQL

昨天系统出问题了,开机时显示系统文件丢失,郁闷,将之前备份的镜像还原后居然蓝屏了,倒霉啊。没办法,只能重装系统了。

环境装好后发现之前的数据库没有备份,于是直接把mysql/data下面的数据库直接拷贝到现在的mysql目录下面,打开navicat发现无法使用。在网上找到了一个不错的方法:

1、先在运行中输入services.msc,找到MysQL的服务,将其停止;

......

2010

Dec

28

PHP二维数组按照一个字段排序
文章分类:PHP+MySQL
看以下二维数组:
PHP代码
  1. $arr = array (  
  2.     array ( 'key' => '69931',  
  3.          'hsex' => '女',  
  4.          'username' => 'jiayang3401',  
  5.          'clicks' => 10,  
  6.          'hyinglou' => '无' ),       
  7.     array ( 'key' => '81',  
  8.          'hsex' => '女',  
  9.          'username' => 'susan',  
  10.          'clicks' => 15,  
  11.          'hyinglou' => '摄影名店' ),       
  12.     array ( 'key' => '101440',  
  13.          'hsex' => '女',  
  14.          'username' => 'NIKI',  
  15.          'clicks' => 3,  
  16.          'hyinglou' => '无' ),       
  17.     array ( 'key' => '101440',  
  18.          'hsex' => '女',  
  19.          'username' => 'NIKI',  
  20.          'clicks' => 2,  
  21.          'hyinglou' => '无' ),       
  22.     array ( 'key' => '101440',  
  23.          'hsex' => '女',  
  24.          'username' => 'NIKI',  
  25.          'clicks' => 33,  
  26.          'hyinglou' => '无' ),       
  27.     array ( 'key' => '101440',  
  28.          'hsex' => '女',  
  29.          'username' => 'NIKI',  
  30.          'clicks' => 30,  
  31.          'hyinglou' => '无' ),       
  32.     array ( 'key' => '101440',  
  33.          'hsex' => '女',  
  34.          'username' => 'NIKI',  
  35.          'clicks' => 8,  
  36.          'hyinglou' => '无' ),       
  37. );   
需要对此数组按clicks键的值排序,最先想到的是冒泡排序,但是数据量很大,用冒泡的话效率太低了,估计运算起来不会太快,后来在网上找到了一个比较好的方法:
PHP代码
  1. foreach($arr as $vo){  
  2.     $t[] = $vo['clicks'];  
  3. }  
  4. array_multisort($t$arr);//排序  
  5. var_dump($arr);  
看过此方法后恍然大悟,哈哈,老鸟别见笑,完全不懂的童鞋直接评论“已阅”,O(∩_∩)O~

2010

Dec

10

PHP无刷新上传文件原理
文章分类:PHP+MySQL

最近做项目时需要用到无刷新上传图片并预览,在网上找了一些教程,似乎最简单的方法就是iframe上传。一个最原始最简单的iframe上传例子:

前台上传页面index.html,主要是一个表单与一个js回调函数。上传文件时,form表单的method、 enctype属性必须和下面代码一样。然后将target的值设为iframe的name,这样就可以实现无刷新上传文件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>上传文件</title>  
</head>  
  
<body>  
<script>  
function CallbackFunction(str){  
alert("上传成功");  
}  
</script>  
<form action="uploadfile.php" enctype="multipart/form-data" method="post" target="iframeUpload">  
	<iframe name="iframeUpload" src="" width="350" height="35" frameborder=0  SCROLLING="no" style="display:NONE"></iframe>  
	<input id="test_file" name="test_file" type="file">  
	<input value="上传文件" type="submit">  
</form>  
</body>  
</html>

后台上传处理页面uploadfile.php,这段代码为简单的上传代码,没有进行错误及异常处理。上传代码执行完成后,要告诉父页面已经上传完毕了,因此,在这个页面里调用父页面的回调函数CallbackFunction,这个函数可以有参数,形式自己定义。

......

2010

Dec

06

MysQL输入小数自动变为整数的解决方法
文章分类:PHP+MySQL

今天在做项目的时候,往数据库中输入小数,却自动变成了整数,很郁闷。看了看数据库的结构,字段类型是float,却怎么也不能写入小数,很奇怪。

后来,得到高人Google的指点,原来在设计表的时候有个“十进位”,这个就是保留小数的位数,“十进位”设置成4后,字段的小数位就都是4了。

......

2010

Oct

25

PHP基础易混淆函数比较
文章分类:PHP+MySQL

1.echo和print的区别
PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1:

PHP代码
  1. $r = print “Hello World”;  
  2. echo $r;  
这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

2.include与require的区别
include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:

......

2010

Sep

11

Apache虚拟目录的配置方法
文章分类:PHP+MySQL

最近想新建一个Apache的虚拟目录,来存放一些程序,在网上查找了N多资料,最终七拼八凑,搞成功了,以下是步骤:

1、打开httpd.conf,查找<IfModule alias_module>,在此节点里面添加如下代码:
Alias /wuleilei "E:/virtualdir/"
其中,E:/virtualdir/为物理路径,wuleilei为访问目录,如:http://localhost/wuleilei;
注:物理路径可以是任意目录,可以是非apache目录;

2、在上面节点的结束标签</IfModule>后面添加如下代码:
<Directory "E:/virtualdir/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

......

2010

Sep

10

MysQL中MyISAM和InnoDB的差别
文章分类:PHP+MySQL

InnoDB和MyISAM是在使用MySQL时最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级 处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持 以及外部键等高级数据库功能。

以下是一些细节和具体实现的差别:
1. InnoDB不支持FULLTEXT类型的索引。
2. InnoDB中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”任何一种表都不是万能的,只有恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。

......

页数1/4 1234

闲言碎语

晚上和爸妈吃个饭。 (2月6日)

装修好累哟 (2月4日)

《斯巴达克斯:复仇》 (2月3日)

文章分类

最近文章

iOS开发之回调delegate的方法...

iOS开发之使用AES加密(兼容Obj...

事情好多哦

iOS开发之获取本机IP地址的方法

简单记录PC上安装苹果系统

最近评论

日志归档

友情链接

其它功能

随机标签