FROM:http://my.chinaunix.net/space.php?uid=395468&do=blog&id=213572
-
<
?
php
-
class
PostTest extends
CDbTestCase{
-
public
$
fixtures
=
array
(
-
'posts'
=
>
'Post'
,
-
'tags'
=
>
'Tag'
,
-
)
;
-
-
public
function
testFindPost(
)
{
-
//调用 find 时,我们使用 $condition 和 $params 指定查询条件。
-
//此处 $condition 可以是 SQL 语句中的 WHERE 字符串,$params 则是一个参数数组,
-
//其中的值应绑定到 $condation 中的占位符。
-
$
post
=
$
this
-
>
posts(
'post1'
)
;
-
$
fPost
=
Post:
:
model(
)
-
>
find(
'id = :id'
,
array
(
':id'
=
>
$
post
-
>
id)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE `t`.`id`=1 LIMIT 1
-
-
$
fPost
=
Post:
:
model(
)
-
>
find(
'?'
,
array
(
$
post
-
>
id)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE '1' LIMIT 1
-
-
//find返回符合条件的第一条记录,而findAll会返回符合条件的所有行。
-
$
fAllPost
=
Post:
:
model(
)
-
>
findAll(
'id = :id'
,
array
(
':id'
=
>
$
post
-
>
id)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE id = '1'
-
-
$
fAllPost
=
Post:
:
model(
)
-
>
findAll(
'?'
,
array
(
$
post
-
>
id)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE '1'
-
-
$
criteria
=
new
CDbCriteria(
)
;
-
$
criteria
-
>
condition =
'id = :id AND title = :title'
;
-
$
criteria
-
>
params =
array
(
':id'
=
>
$
post
-
>
id,
':title'
=
>
$
post
-
>
title)
;
-
$
fPost
=
Post:
:
model(
)
-
>
find(
$
criteria
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE id = '1' AND title = 'post1' LIMIT 1
-
-
$
fAllPost
=
Post:
:
model(
)
-
>
findAll(
$
criteria
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE id = '1' AND title = 'post1'
-
-
$
fPost
=
Post:
:
model(
)
-
>
findByPk(
$
post
-
>
id,
'title = :title'
,
array
(
':title'
=
>
$
post
-
>
title)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE `t`.`id`=1 AND (title = 'post1') LIMIT 1
-
-
$
fPost
=
Post:
:
model(
)
-
>
findByAttributes(
array
(
'id'
=
>
$
post
-
>
id,
'title'
=
>
$
post
-
>
title)
)
;
-
//SELECT * FROM `tbl_post` `t` WHERE `t`.`id`='1' AND `t`.`title`='post1' LIMIT 1
-
-
$
sql
=
'SELECT id, title from {{post}} WHERE id = ? AND title = ?'
;
//必须设置表前缀
-
$
fPost
=
Post:
:
model(
)
-
>
findBySql(
$
sql
,
array
(
$
post
-
>
id,
$
post
-
>
title)
)
;
-
-
$
sql
=
'SELECT id, title from {{post}} WHERE id = :id AND title = :title'
;
-
$
fPost
=
Post:
:
model(
)
-
>
findBySql(
$
sql
,
array
(
':id'
=
>
$
post
-
>
id,
':title'
=
>
$
post
-
>
title)
)
;
-
-
//如果没有找到符合条件的行,find返回null,findAll 返回 array()。
-
-
}
-
-
public
function
testCountPost(
)
{
-
$
post
=
$
this
-
>
posts(
'post1'
)
;
-
-
$
cPost
=
Post:
:
model(
)
-
>
count
(
'?'
,
array
(
$
post
-
>
title)
)
;
-
//SELECT COUNT(*) FROM `tbl_post` `t` WHERE 'post1' 无意义
-
-
$
cPost
=
Post:
:
model(
)
-
>
countByAttributes(
array
(
'title'
=
>
$
post
-
>
title,
'content'
=
>
$
post
-
>
content)
)
;
-
//SELECT COUNT(*) FROM `tbl_post` `t` WHERE `t`.`title`='post1' AND `t`.`content`='content1'
-
-
$
sql
=
"SELECT title from {{post}} WHERE title LIKE '%"
.
$
post
-
>
title .
"%'"
;
-
$
cPost
=
Post:
:
model(
)
-
>
countBySql(
$
sql
)
;
-
//至少有一条记录符合查询条件
-
$
ePost
=
Post:
:
model(
)
-
>
exists(
'id = ? AND title = ?'
,
array
(
$
post
-
>
id,
$
post
-
>
title)
)
;
-
//SELECT 1 FROM `tbl_post` `t` WHERE id = '1' AND title = 'post1' LIMIT 1
-
}
-
-
public
function
testUpdatePost(
)
{
-
$
post
=
$
this
-
>
posts(
'post1'
)
;
-
$
post
-
>
title =
'update post 1'
;
-
-
if
(
$
post
-
>
isNewRecord)
{
-
$
post
-
>
create_time =
$
post
-
>
update_time =
new
CDbExpression(
'NOW()'
)
;
-
//UPDATE `tbl_post`
SET `id`=1, `title`='update post 1', `content`='content1', `tags`=NULL,
`status`=1, `create_time`=NULL, `update_time`=1302161123, `author_id`=1
WHERE `tbl_post`.`id`=1
-
}
else
{
-
$
post
-
>
update_time =
time
(
)
;
-
}
-
-
$
post
-
>
save(
)
;
-
-
-
//updateAll
-
$
sql
=
"SELECT * FROM {{post}} WHERE title LIKE '%"
.
"post"
.
"%'"
;
-
//SELECT * FROM tbl_post WHERE title LIKE '%post%'
-
-
$
post
=
Post:
:
model(
)
-
>
findBySql(
$
sql
)
;
-
$
post
-
>
updateAll(
array
(
'update_time'
=
>
time
(
)
)
,
'id <= ?'
,
array
(
'2'
)
)
;
-
//UPDATE `tbl_post` SET `update_time`=1302161123 WHERE id <= '2'
-
-
$
post
-
>
updateByPk(
$
post
-
>
id +
2,
array
(
'title'
=
>
'update post 3'
)
)
;
-
$
post
-
>
updateByPk(
$
post
-
>
id,
array
(
'title'
=
>
'update post 3'
)
,
'id = ?'
,
array
(
'3'
)
)
;
-
-
//updateCounter 更新某个字段的数值,一般是计数器(+/-)。
-
$
tag
=
$
this
-
>
tags(
'tag1'
)
;
-
$
uTag
=
Tag:
:
model(
)
-
>
updateCounters(
array
(
'frequency'
=
>
'3'
)
,
'id = ?'
,
array
(
'1'
)
)
;
-
}
-
-
public
function
testDeletePost(
)
{
-
$
post
=
$
this
-
>
posts(
'post1'
)
;
-
$
post
-
>
delete
(
)
;
-
-
-
$
this
-
>
assertEquals(
1,
$
post
-
>
id)
;
//删除数据库表中的记录,但是post的这个实例还在。
-
$
post2
=
Post:
:
model(
)
-
>
findByPk(
$
post
-
>
id)
;
-
$
this
-
>
assertEquals(
null
,
$
post2
)
;
-
-
//多条记录
-
$
delete
=
Post:
:
model(
)
-
>
deleteAll(
'(id = ? AND title = ?) || (id = \'4\') '
,
array
(
1,
'post 1'
)
)
;
-
$
this
-
>
assertEquals(
0,
$
delete
)
;
-
-
$
delete
=
Post:
:
model(
)
-
>
deleteAllByAttributes(
array
(
'id'
=
>
'2'
)
,
'content = ?'
,
array
(
'content2'
)
)
;
-
//DELETE FROM `tbl_post` WHERE `tbl_post`.`id`='2' AND (content = 'content2')
-
$
this
-
>
assertEquals(
1,
$
delete
)
;
-
}
-
}
-
?
>
分享到:
相关推荐
Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...
yii framework框架 + yii app模板(基本、高级)
### Yii Framework 2.0 权威指南知识点详解 #### 一、Yii框架概述 - **定义**:Yii是一款高效能、基于组件的PHP框架,主要用于加速现代Web应用的开发进程。其名称“Yii”(发音类似于“易”)在中国文化中有“极致...
9. **Gii代码生成工具**:Gii是Yii的一个代码生成工具,可以帮助开发者快速生成CRUD(创建、读取、更新、删除)操作和其他基础代码,大大加快开发速度。 10. **性能优化**:Yii通过预编译和运行时优化,如输出缓冲...
Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.
这个“yii framework 中文完全手册”提供了详尽的指南,帮助开发者理解和利用Yii的强大功能。在深入探讨之前,我们先简单介绍一下Yii框架的基本概念。 Yii,发音为"易",寓意“简易”,是一个快速、安全且专业的...
主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下
主要介绍了YII Framework框架教程之使用YIIC快速创建YII应用的方法,详细分析说明了YII Framework框架使用YIIC命令行创建应用的相关技巧与注意事项,需要的朋友可以参考下
Yii Framework 1.10的API手册
yii2-ajaxcrud, 用于yii2的单一页面Ajax管理的Gii模板 yii2-ajaxcrud 用于yii2的单一页面Ajax管理的Gii模板 特性使用Ajax创建。读取。更新。删除页面批量删除 suportPjax小部件 suport导出函数( pdf,html,文本,cs
Yii Framework PHP CodeSniffer编码标准(官方仓库) 您可以在此处阅读有关Yii标准的信息: : 如何安装安装PEAR: http://pear.php.net/manual/en/installation.getting.php 安装... git clone git://github....
PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip PHP实例开发源码—Yii Framework php框架.zip
yii framework 最全最新的中文手册
在“Yii Framework v2.0.4.zip”中,我们可以期待找到以下关键组成部分: 1. **框架核心**:包括核心类库,如基础组件、事件系统、依赖注入容器等,这些都是Yii运行的基础。 2. **MVC结构**:模型(Model)处理...
这个中文手册详尽地介绍了 Yii Framework 的各个方面,从框架基础到高级特性,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入学习和实践,你可以充分发挥 Yii 的潜力,构建出高效、可靠的 Web ...
Yii Framework v1.1.10类参考中文手册
8. **Gii代码生成工具**:Yii 的Gii工具可以帮助开发者自动生成CRUD(创建、读取、更新、删除)操作的代码,快速搭建基本的后台管理界面。 9. **单元测试和行为(Behaviors)**:Yii 支持PHPUnit进行单元测试,确保...
总的来说,Yii Framework 提供了一个高效且全面的开发环境,适用于构建各种复杂的Web应用。通过深入学习和理解Yii的各个组件和特性,开发者可以大大提高开发效率,同时保证应用的质量和安全性。