Archive

Archive for the ‘PHP&MYSQL’ Category

ubuntu9.10 更换Mysql数据目录,mysql服务器无法启动,已经解决

March 4th, 2010

更换Mysql数据目录后, mysql服务器无法启动。
解决方法记录如下

首先,我们看怎么修改mysql的数据文件目录

建新数据库目录
mkdir /media/hda11/db

复制linux下原数据到新目录下
cp -dpR /var/lib/mysql/* /media/hda11/db

给新目录重命属性
chown mysql:mysql /media/hda11/db

修改文件/etc/apparmor.d/usr.sbin.mysqld
:sudo gedit /etc/apparmor.d/usr.sbin.mysqld

/var/lib/mysql r,
/var/lib/mysql/** rwk,

改成
/media/hda11/db r,
/media/hda11/db/** rwk,

修改目录
sudo gedit /etc/mysql/my.cnf

datadir = /var/mysql换成datadir = /media/hda11/db

再开服务器
sudo /etc/init.d/apparmor restart

sudo /etc/init.d/mysql restart

注意事项:修改文件之前,应该先备份原始文件。如my.cnf, usr.sbin.mysqld

但是,/etc/apparmor.d/usr.sbin.mysqld 的备份,不要放在当前目录下,而是要备份到别的地方,否则它会加载这个目录下所有的文件的权限内容,导致修改后依然没有权限,mysql就启动不成功。我就在这儿转了好久,都没有找到问题所在。最后一遍试验的时候,才成功。原来问题在这里。

PHP&MYSQL, linux

PHP数据库抽象层

December 29th, 2009

本章着重讲述PHP数据库抽象层与数据库抽象类。
目前,在PHP的网站及众多书籍中,很少讲到数据库抽象层, 有的PHP开发者虽然已做了几年开发工作,但似乎也没有意识到它的 存在。

很多人并不理解数据抽象的重要性,也不 了解mysql或mysqli扩 展与PDO的区别,PDO与ADODB又有什么区别。
在本章中将讲述以下内容,通过学习,上面的问题都会迎刃而解。
Ø使用数据库抽象层的原因;
Ø数据库抽象层的发展;
Ø一些流行新抽象层的介绍;
ØPDO数据库抽象层开发技术;
ØADODB数据库抽象层开发技术。

17.1什么是数据库抽象层

使用数据库抽象层,意味着当从一个数据 库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码,如将MS SQL Server迁移到MySQL。

首先,代码规划必须规范,即整个系统使 用同一个数据对象实例,并且使用同一个较好的数据库抽象层。如果有一天用 户要求将Oracle切 换到MySQL,则只需 要改变系统的配置文件即可。
Read more…

PHP&MYSQL , , , , , ,

AMFPHP原理、简介及视频教程

December 22nd, 2009

AMFPHP项目主页:http://www.amfphp.org/
AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。它可以使PHP与下述技术无缝通信:
(1) Flash 和 Flex Remoting
(2) JavaScript JSON 和 Ajax JSON
(3) XML 和XML-RPC

AMFPHP-什么是RPC
远端程序调用(RPC, Remote Procedure Call) 是一种客户端与服务器端交换数据方式。我们可以调用本地对象带对各种参数方法设置回调并接受调用结果。我们不用关心发送和接收数据的实现细节。实现细节通常是抽象的,就像我们在调用本地方法一样。

AMFPHP的工作原理 Read more…

PHP&MYSQL

php官方已经将CVS转换至SVN

November 21st, 2009

虽然不是什么新闻了,但记录下地址

PHP&MYSQL ,

PHP5的魔法方法(Magic Methods)

November 21st, 2009

PHP5是目前性能最高的PHP版本,今天又见这篇php手册的翻译文章,为增加blog文章,贴出来,哈哈。
函数名__construct, __destruct (注意构造函数和析构函数), __call, __get, __set, __isset, __unset (注意重载), __sleep, __wakeup, __toString, __set_state, __clone and __autoload是PHP类里边的魔法函数.
函数名 __construct, __destruct(注意构造函数和析构函数), __call, __get, __set, __isset, __unset (see 注意重载), __sleep, __wakeup, __toString, __set_state, __clone and __autoload在PHP类里是魔术的.在任何类里你不能用这些名字给函数命名除非你想与它们的魔术功能性相关联。
注意: PHP储量将所有用__开始的函数名作为魔术函数。推荐地,在PHP里不能用__做函数名除非你想用文件证明是魔术函数。
__sleep()和 __wakeup()
serialize() 检查类中是否有魔术名称 __sleep 的函数。如果这样,该函数将在任何序列化之前运行。它可以清除对象并应该返回一个包含有该对象中应被序列化的所有变量名的数组。
使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。
相反地,unserialize() 检查具有魔术名称 __wakeup 的函数的存在。如果存在,此函数可以重建对象可能具有的任何资源。
使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。
例子 19-25. Sleep and wakeup
Read more…

PHP&MYSQL , , , , , , , , , ,

php函数call_user_func 和 call_user_func_array详解

November 19th, 2009

call_user_func

(PHP 4, PHP 5)

call_user_func — Call a user function given by the first parameter

说明

mixed call_user_func_array ( callback $function, array $param_arr )

Call a user defined function with the parameters in param_arr.

参数

function

The function to be called.

param_arr

The parameters to be passed to the function, as an indexed array.

返回值

Returns the function result, or FALSE on error.

call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:

function a($b,$c) {
echo $b;
echo $c;
}
call_user_func(‘a’, "111","222");
call_user_func(‘a’, "333","444");
//显示 111 222 333 444
?>

Read more…

PHP&MYSQL ,

win7/windows7 下xampp apache无法启动的解决方案[原创]

November 11th, 2009

禁不住win7的诱惹,申请了lenovo的升级包,安装了win7 64位旗舰版。用起来很爽。

然后发现xampp中的apache 无法启动了。可是明明记得以前是可以启动的啊。可能是更新某个补丁导致的结果。

通常xampp中的apache无法启动,都是因为80端口被占用,如Skype,迅雷,电驴等软件占用80端口,如果xampp的启动顺序在其后,就无法启动apache。但这次发现这些软件均没有启动,那该是什么软件在占用80端口呢?

记得在查看win7新功能的时候,有一个打开或关闭windows功能的程序。里面含盖了IE8等windows软件,类似于以前的添加删除windows组件的服务。

于是乎,akii发现里面有IIS,于是开始实验关闭,得出结论如下:

打开控制面板->程序->程序和功能->打开或关闭windows功能

然后在选项Internet信息服务->万维网服务->安全性,把“请求筛选”前的勾去掉,然后确定即可。windows会执行一下程序的变更,然后,您猜怎么着xampp正常了,apache启动了。

[原创文章,如需转载请保留出处和链接]

Read more…

PHP&MYSQL

Php在移动领域的开发及探索

September 16th, 2009

当今在WWW是世界里,PHP已经是一个不可忽视的强大力量,身为开源的先锋,已经为各种的开源产品作出了表率作用,用现在流行的话就是,草根的力量,星 星之火可以燎原,众多的一流网站国外的facebook,Iyohoo,国内有开心网,都是用以前被很多专家看不起的PHP来开发的,开源的产品成为主流 已经成为可能。近几年,随着智能手机普及,手机硬件性能的不断提高,手机已经进入了一个新的阶段,PC机上的众多软件移植到手机系统上已经是大势所趋,移 动系统软件已经成为,软件开发的重要增长点,PHP在移动市场的前景是什么呢?让我们来探索一下。
要说PHP在移动领域的开发,我们首先要先来介绍一个对与PHP和移动领域都很重要的名词“Widget”,要说到Widget,很多人可能都听说过,因 为当今Widget是一个十分有人气的技术概念,在很多的领域都有应用,但恐怕真正知道什么是Widget的人就很少了,下面我先给大家介绍一下什么是 Widget吧,简单的说 Widget就是轻量级的UI控件,为用户展示不同的个性化的信息。
目前Widget主要有4个大类: Read more…

PHP&MYSQL ,

php树型无限级分类结构[预排序遍历树算法]

September 9th, 2009

预排序遍历树算法 modified preorder tree traversal algorithm

产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常 是关系型数据库,它能够保存大量的数据,提供高效的数据检索和更新服务。然而关系型数据的基本形式是纵横交错的表,是一个平面的结构,如果要将多级树状结 构存储在关系型数据库里就需要进行合理的翻译工作。接下来我会将自己的所见所闻和一些实用的经验和大家探讨一下:

层级结构的数据保存在平面的数据库中基本上有两种常用设计方法:

1、毗邻目录模式(adjacency list model)

2、预排序遍历树算法(modified preorder tree traversal algorithm)

我不是计算机专业的,也没有学过什么数据结构的东西,所以这两个名字都是我自己按照字面的意思翻的,如果说错了还请多多指教。
这两个东西听着好像很吓人,其实非常容易理解。这里我用一个简单食品目录作为我们的示例数据。
Read more…

PHP&MYSQL ,

php中addslashes() ,mysql_real_escape_string() 和mysql_escape_string() 的区别

August 25th, 2009

SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。

为了防止SQL注入攻击,PHP自带一个功能可以对输入的字符串进行处理,可以在较底层对输入进行安全上的初步处理,也即Magic Quotes。(php.ini magic_quotes_gpc)。如果magic_quotes_gpc选项启用,那么输入的字符串中的单引号,双引号和其它一些字符前将会被自动加 上反斜杠\。

但Magic Quotes并不是一个很通用的解决方案,没能屏蔽所有有潜在危险的字符,并且在许多服务器上Magic Quotes并没有被启用。所以,我们还需要使用其它多种方法来防止SQL注入。
Read more…

PHP&MYSQL , , ,