speedphp学习笔记Word格式.docx

上传人:b****3 文档编号:16714492 上传时间:2022-11-25 格式:DOCX 页数:20 大小:26.32KB
下载 相关 举报
speedphp学习笔记Word格式.docx_第1页
第1页 / 共20页
speedphp学习笔记Word格式.docx_第2页
第2页 / 共20页
speedphp学习笔记Word格式.docx_第3页
第3页 / 共20页
speedphp学习笔记Word格式.docx_第4页
第4页 / 共20页
speedphp学习笔记Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

speedphp学习笔记Word格式.docx

《speedphp学习笔记Word格式.docx》由会员分享,可在线阅读,更多相关《speedphp学习笔记Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

speedphp学习笔记Word格式.docx

,array("

gid"

=>

"

3"

"

myname"

jake"

));

{spUrlc=guestbooka=pagegid=3myname="

}>

c=guestbook&

a=page&

gid=3&

myname=jake

3.在二级目录中使用SpeedPHP框架的时候

和在顶级目录使用spUrl一样,无需配置。

如在程序中:

输出将是:

/sp/index.php?

spArgs代替$_GET/$_POST的数据获取

spArgs是controller继承类的一个扩展方法,可以有两个参数,第一个参数是将要获取的参数名称,为空则返回全部参数的数组。

第二个参数是默认值,当需要获取的参数为空时,将返回该默认值。

表单中我们将提交name,title和contents等参数。

然后在程序当中:

$name=$this->

spArgs("

name"

//可以获取到表单的name,第二个参数是当name没有值时返回的默认值

$title=$this->

title"

这里是默认标题"

//可以获取到表单的title

if($name=$this->

)){

//name被提交

}else{

//没有提交

}

//如果spArgs没有输入参数,将返回全部的提交参数:

dump($this->

spArgs());

//该语句在开发中常用作调试用

//SpeedPHP框架的spController提供了jump、success、error等多种跳转模式。

$this->

jump(spUrl('

main'

index'

//跳转到首页

jump("

//跳转到

 

PHP框架中session的使用

PHP框架中session是一个数组,可以通过$_SESSION['

key'

]=$value的方式对session赋值。

如:

$_SESSION['

myname'

]='

Helllo'

;

echo$_SESSION['

];

PHP框架中cookie的使用

cookie在程序中使用通常作为“保持登录”或是跟踪访问者操作等。

和session不同,cookie存放的位置,是在访问者的浏览器缓存中。

cookie的使用有几个要素:

过期时间、路径、域

cookie可以通过setcookie函数设置:

setcookie(COOKIE名字,COOKIE值,过期时间,路径,域名);

过期时间:

默认是会话时间长度,和session相同。

路径:

默认是“/”,设置在当前域名下COOKIE生效的路径。

域:

域名,默认是当前网站域名。

可以设置成“”来使得整个网站(包括二级域名)都可以读取该COOKIE。

1

$value='

这里是设置的值'

2

setcookie("

TestCookie"

$value);

//该cookie的过期时间是会话时间

3

$value,time()+3600);

//该cookie的过期时间是1小时,当前时间time()加3600秒(1小时)

4

$value,time()+3600,"

/bbs/"

//该cookie的过期时间是1小时,只在及二级域名的bbs目录下使用。

cookie值可以用$_COOKIE数组来获取。

echo$_COOKIE['

TestCookie'

json_encode函数会将普通数据编码,成为JSON格式的数据。

(以下例子来自于)

viewsource

?

php

$arr=array('

a'

1,'

b'

2,'

c'

3,'

d'

4,'

e'

5);

echo$arr);

>

json_decode函数可以将JSON格式的数据,还原成普通的变量数量。

$json='

{"

a"

:

1,"

b"

2,"

c"

3,"

d"

4,"

e"

5}'

var_dump($json));

5

显示:

object(stdClass)#1(5){

["

]=>

int

(1)

int

(2)

int(3)

int(4)

int(5)

}

建立表驱动模型类

classgbextendsspModel{

var$table="

gb"

var$pk="

6

这些代码可以直接复制粘贴来使用,作为其他的表模型类的样板。

classgbextendsspModel,定义了一个名称为gb的PHP类,并且派生自spModel这个核心类。

表驱动模型类都必须是spModel的派生类。

简单来说就是“extendsspModel”这些代码是必须的。

var$table="

,定义gb类对应的表名。

当然加上数据表前缀的话,该表的全名应该是“spgb_gb”。

var$pk="

,定义该数据表的主键名称,一般数据表的主键都是数值类型并且是自增量。

以上三个设置,是每个表驱动模型类都必须的,而且表驱动模型类一般是放置在应用程序目录下model的目录里面。

当然这也在应用程序配置中修改该位置。

find——从数据表中查找一条记录

//首先需要准备查找条件

$conditions=array('

name'

'

小李'

$gb=spClass('

gb'

//初始化留言本模型类

$result=$gb->

find($conditions);

//查找

dump($result);

//查看结果,

echo$result['

contents'

//直接输出结果中的留言内容,对应字段contents

findAll——从数据表中查找记录

findAll与find的区别在于findAll是返回全部符合条件的记录,而find仅是返回findAll结果的第一条记录。

举例:

SELECT*FROMspgb_gbWHEREname='

jake'

ORname='

lin'

那么,如何使用findAll来查询呢?

$conditions="

name='

"

findAll($conditions);

1.复合OR和AND的查询

查询名称为jake或lin的留言,而且留言的时间是在5月3日之后。

SELECT*FROMspgb_gbWHERE(name='

)ANDpost_time>

'

2010-05-0300:

50:

55'

而findAll就是:

$conditions="

(name='

$results=$gb->

2.like模糊查找

模糊查找在留言内容(contents)中有“SpeedPHP”一词的留言。

SELECT*FROMspgb_gbWHEREcontentslike'

%SpeedPHP%'

而findAll是:

contentslike'

添加删除修改查询

create——在数据表中新增一行数据

用法:

create($row)

参数:

$row,数组形式,数组的键是数据表中的字段名,键对应的值是需要新增的数据。

例子:

01

/**首先是准备新增的数据

02

*表中的gid因为是自增量,所以没必要去赋值

03

*replay因为是可为空,并且刚留言也不会有回复,所以也可以不赋值

04

*数组中的键是字段名称,值是数据

05

*/

06

$newrow=array(//PHP的数组

07

08

这是我的第一个留言'

09

post_time'

date('

Y-m-dH:

i:

s'

),

10

post_ip'

$_SERVER['

REMOTE_ADDRESS'

],

11

12

13

$gb->

create($newrow);

//进行新增操作

返回:

新增成功则返回新增的自增量ID,失败则返回FALSE。

update——修改数据,该函数将根据参数中设置的条件而更新表中数据。

update($conditions,$row)

$conditions,数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。

$row,数组形式,修改的数据,此参数的格式用法与create的$row是相同的。

在符合条件的记录中,将对$row设置的字段的数据进行修改。

//将小李的第一条留言,也就是gid=12的留言的内容修改成“我的第一条留言”。

//构造查找条件

gid'

12);

//思考为什么不能用'

=>

来作为条件呢?

//设置需要更新的字段,注意没必要更新的字段请不要设置。

这里我们仅仅修改contents(内容)对应的数据。

$row=array('

我的第一条记录'

7

update($conditions,$row);

原来的数据表:

12小李我的留言2009-10-2610:

04:

53218.82.32.12

13小李我的第二条留言2009-10-2610:

经过执行$gb->

update($conditions,$row);

后:

12小李我的第一条留言2009-10-2610:

返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。

返回FALSE是语句执行失败

delete——按条件删除记录

delete($conditions)

delete的操作将删除符合$conditions条件的记录。

//这里我们将删除小李的第二条留言,也就是gid=13的记录

13);

//构造条件

delete($conditions);

gid为13的记录已被删除

$sort,排序方法,等于SQL语句中的ORDERBY(排序)

首先我们来看看,通常SQL语句中的排序是如何实现的,比如说留言本中需要按照时间先后排序(正序,就是ASC,反序DESC)

SELECT*FROMspgb_gbORDERBYpost_timeASC//正序,也就是时间小的排前面

SELECT*FROMspgb_gbORDERBYpost_timeDESC//反序,时间大的排前面

ORDERBYpost_timeASC,replayDESC//查询留言者是jake的留言,按时间正序然后回复反序的方式排列(一般按回复内容的头字母排列)

而当我们使用find/findAll的时候,可以:

findAll(null,"

post_timeASC"

//条件为空,排序是时间正序

post_timeDESC"

//条件为空,排序是时间反序

findAll(array('

),"

post_timeASC,replayDESC"

//条件为name=jake,排序是时间正序然后回复反序的方式排列

$fields,仅获取的字段,等于SQL语句SELECT和FROM之间的返回字段,默认为*(也就是返回所有字段)

SELECTgid,name,contentsFROMspgb_gb

SELECTspgb_gb.gid,spgb_gd.name,spgb_gb.contentsFROMspgb_gb

以上两条SQL语句的相等的,而第二条SQL语句在返回的字段名称前,加上的表全名,这样做更为严谨。

而使用find/findAll,可以:

findAll(null,null,"

gid,name,contents"

//条件为空,排序为默认的主键ID排序,返回字段限制是gid,name,contents

spgb_gb.gid,spgb_gd.name,spgb_gb.contents"

//和上面相同

在使用$fields的时候,请注意:

$fields一定要包括排序$sort的字段,比如按时间排序,那么$fields是务必要包含时间字段。

当$sort为空(默认)的时候,那么$field需要包含主键(因为默认$sort是按主键排序的)

findCount——计算符合条件的记录数量

findCount($conditions=null)

该函数主要用于计算符合$conditions的记录数量。

可以说findCount是相等于SQL语句的“SELECTCOUNT(*)WHERE条件”的返回结果

//我们来看看数据表中有多少条留言者是“小李”的留言

//条件是同样的

$sum=$gb->

findCount($conditions);

//使用了findCount

echo$sum;

数据表中有留言者是小李的数据:

findCount将得到结果:

2,也就是有两条留言者是“小李”的留言。

返回符合$conditions记录的数量,如无任何符合条件的记录将返回0。

create

在数据表中新增一行数据

delete

按条件删除记录

update

修改数据,该函数将根据参数中设置的条件而更新表中数据

boolupdate(mixedconditions,arrayrow)

mixedconditions数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。

arrayrow数组形式,修改的数据,此参数的格式用法与create的$row是相同的。

返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。

返回FALSE是语句执行失败

updateField

按字段值修改一条记录

boolupdateField(mixedconditions,stringfield,stringvalue)

stringfield字符串,对应数据表中的需要修改的字段名

stringvalue字符串,新值

返回值参考update函数。

//使用updateField

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1