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 framework框架 + yii app模板(基本、高级)
Yii Framework 1.1.6 框架
Yii Framework是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii framework 中文完全手册
Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
yii framework 1.1.14 chm文档,从官方html文档编译,展示效果很好.
PhpStorm6 创建yii framework项目全过程。
Yii Framework 1.10的API手册
Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上...
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 最全最新的中文手册
YiiFramework 最新最完善的YII框架
Yii Framework 2.0 权威指南 pdf格式 中文高清离线版 有书签
Yii Framework v1.1.10类参考中文手册
Yii Framework 2.0 Where条件拼接 pdf 应该囊括 了大部分的查询示例,like ,not,...
yiiframework 纯中文手册 在官网的基础上翻译的更全面 更详细
2019年最近整理的YII Framework 2.0权威指南文档。在这里上伟希望能帮到大家。可以方便的在手机上,或没有网络的地方查看学习。