yii之Active Record
Active Record
至于什么是AR,以及yii中AR的大致使用方法,这里不做笔墨,可参见yiiframework官方文档,在这里只是想对yii中的AR使用方法做一点示例,因为官方给出了方法,但是例子稍微逊色,自己趁练习之余笔记下来.
yii AR官方文档地址: Active Record
为了做测试,创建了一张user表,共3个字段,并且插入了4条数据.如下:
02 `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘用户id’,
03 `username` char(30) NOT NULL COMMENT ‘用户名’,
04 `pwd` char(32) NOT NULL COMMENT ‘用户密码’,
05 PRIMARY KEY (`id`)
06 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
07
08 INSERT INTO `user` (`id`, `username`, `pwd`) VALUES
09 (1, ‘liangqi’, ‘123456′),
10 (2, ‘godsee’, ‘654321′),
11 (3, ‘webkit4′, ‘webkit4′),
12 (4, ‘yatou’, ‘hello_test’);
find($condition,$params) 找出匹配条件的一行数据,如果使用给定的查询条件在数据库中没有找到任何东西,null
调用 find 时,我们使用 $condition 和 $params 指定查询条件。此处 $condition 可以是 SQL 语句中的 WHERE 字符串,$params 则是一个参数数组,其中的值应绑定到 $condation 中的占位符。
1, 如果不加参数,会找出主键id=1的行数据
code:
2 echo $user->id.’<br />’;
3 echo $user->username.’<br />’;
4 echo $user->pwd;
输出结果
2 liangqi
3 123456
2, 可以传入$condition条件,此参数,代表的是SQL语句中的WHERE条件
02 echo $user->id.’<br />’;
03 echo $user->username.’<br />’;
04 echo $user->pwd;
05 echo ‘################<br />’;
06
07 //查找id=3 ,username=”webkit4″
08 $user = User::model()->find(’id = 3 AND username=”webkit4″‘);
09 echo $user->id.’<br />’;
10 echo $user->username.’<br />’;
11 echo $user->pwd;
输出结果
2 godsee
3 654321
4 ################
5 3
6 webkit4
7 webkit4
不过直接为条件赋值,是不推荐的,最好的方式是使用预处理语句,绑定参数变量,作为占位符.使用的预处理的查询速度更快,并且可以防止SQL注入,所以官网文档推荐一下条件查找:
02 $user = User::model()->find('id=:userId',array(’:userId’=>1));
03 echo $user->id.'<br />';
04 echo $user->username.'<br />';
05 echo $user->pwd;
06 echo '################<br />';
07
08 //查找id=3 ,username="webkit4"的行
09 $user = User::model()->find(
10 'id=:userId AND username=:username',
11 array(
12 ':userId'=>3,
13 ':username'=>’webkit4′
14 )
15 );
16 echo $user->id.'<br />';
17 echo $user->username.'<br />';
18 echo $user->pwd;
输出结果
2 liangqi
3 123456
4 ################
5 3
6 webkit4
7 webkit4
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments
还没有评论。
发表评论