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:高性能的PHP框架。 - Symfony:全功能的PHP Web框架。 - PEAR Propel:PHP5的对象关系映射(ORM)框架。 - Zend Framework:PHP5的全栈开发框架。 - Qcodo:PHP5的MVC框架,带有CRUD代码生成...
- **Yii Framework**: 高性能的组件化PHP框架。 - **Symfony**: 开源的PHP Web框架,加速Web应用开发。 - **PEAR Propel**: PHP5的对象关系映射(ORM)框架。 - **Zend Framework**: 官方支持的全功能PHP开发...
基于Andorid的音乐播放器项目改进版本设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
uniapp-machine-learning-from-scratch-05.rar
game_patch_1.30.21.13250.pak
【毕业设计-java】springboot-vue计算机学院校友网源码(完整前后端+mysql+说明文档+LunW).zip
特征变换 特征选择
吸烟数据集 991张原始图片,平均识别率在88.3% coco json格式标注
c++万能头文件picture.h
spaceX 动力学分析
python教程学习
内容概要:本文详细整理了与uniapp有关的一系列学习资源及开发工具。首先对官方文档与教程进行梳理,这是学习uni-app的基础部分,涵盖从基本概念到具体开发指引的全方位资料。接着详细介绍了一款专为uni-app打造的高效开发工具HBuilderX的功能特点及其使用指南,并提到了CLI命令行工具可用于完成开发过程中的常规操作任务。同时,指出uni-app所处的强大社区氛围,无论是社区还是论坛都为开发者解决了实际遇到的问题并分享了大量有价值的经验;还提及多个专门为uni-app量身定制的UI框架和丰富的组件库,进一步提高了开发的便捷性和灵活性;最后列举了几类学习资源,诸如视频教程、博客与文章还有相关书籍均能助力新手成长为熟练工。所有这些资源都将有助于深入学习和理解uni-app这个跨平台框架的相关知识点,进而开发出优秀的多平台应用程序。 适用人群:有意进入跨平台移动应用开发领域的初学者,以及希望提升开发技能的专业人士。 使用场景及目标:为想要深入了解或者开始使用uni-app框架进行开发的人群提供完整路径指导;为目标受众建立起一套完整的学习路径来降低入门难度并提升实际操作能力。
AI Agent 行业研究报告.pdf
请到网盘中自取压缩包,此包为kibana-7.10.2 镜像压缩包,是通过现有镜像导出来的,主要是为了解决有些机器无法连接外网,导致无法下载镜像 加载镜像: docker load -i kibana-7.10.2.tar 查看镜像: docker images 备注:elk此镜像配套资源,相同版本的elasticsearch和logstash,请在我的资源中搜索其他镜像
图解AUTOSAR-CP-TcpIp逻辑图打包
【毕业设计-java】springboot-vue交友网站平台实现源码(完整前后端+mysql+说明文档+LunW).zip
海康相机平场矫正对比图
python教程学习
【论文+PPT+代码+开题+任务书】手机APP遥控的相关测试主要完成设计当中按键控制对应继电器是否正确打开以及关上,可以通过观察按下按键时继电器想匹配的LED是否点亮来进行验证。 进入手机APP后,根据APP中的按键分别控制不同的继电器,继电器1这个按键控制对应1号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,1号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,1号指示灯就可以由亮变暗。 如果点击继电器2则控制对应2号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,2号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,2号指示灯就可以由亮变暗。 如果点击继电器3则控制对应3号继电器的开启和关闭,手机蓝牙按下按键由OFF转变为ON那么电控制器件就可以变化一次,3号指示灯就可以由暗变亮了,再次按下手机蓝牙按键由ON转变为OFF电控制器件又变化一次,3号指示灯就可以由亮变暗。 如果点击继电器4则控制对应4号继电器的开启和关闭
【毕业设计】java-springboot+vue教师人事档案管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip