Yii框架之DAO的基本操作

DAO的基本操作
Main.php中

\'writer\'=>array(
\'class\' => \'CDbConnection\',
\'connectionString\' => \'mysql:host=localhost;dbname=guestbook\',
//\'emulatePrepare\' => true,
\'username\' => \'root\',
\'password\' => \'123456\',
\'charset\' => \'utf8\',
),

1、 数据增加

$connection = Yii::app()->writer;
$sql = \"INSERT INTO `book`
(name,content,time) VALUES (:name,:content,:time)\";
$command = $connection->createCommand($sql);
$name = \'testName\'; //name字段的值
$content = \'testContent\';//content字段的值
$time = time(); //time字段的值
$command->bindParam(\":name\",$name,PDO::PARAM_STR); //其中的变量$name 必须以变量传值方式---不能直接给予实参
$command->bindParam(\":content\",$content,PDO::PARAM_STR);//其中的变量$content必须以变量传值方式---不能直接给予实参
$command->bindParam(\":time\",$time,PDO::PARAM_INT);//其中的变量$time 必须以变量传值方式---不能直接给予实参
$command->execute();

2、数据修改

$connection = Yii::app()->writer;
$sql = \"UPDATE `book` SET name = \'names\' WHERE id = :id\";
$command = $connection->createCommand($sql);
$id = 91145;
$command->bindParam(\':id\',$id,PDO::PARAM_INT); //其中的变量$ id 必须以变量传值方式---不能直接给予实参
$command->execute();

3、数据的删除

$connection = Yii::app()->writer;
$sql = \"DELETE FROM `book` WHERE id = :id\";
$command = $connection->createCommand($sql);
$id = 91145;
$command->bindParam(\':id\',$id,PDO::PARAM_INT); //其中的变量$ id 必须以变量传值方式---不能直接给予实参
$command->execute();

4、数据的查询

$connection = Yii::app()->writer;
$sql = \"SELECT * FROM `book` ORDER BY id DESC\";//如使用where 可采用绑定 例:WHERE id = :id
$command = $connection->createCommand($sql);
$result = $command->queryAll();
print_r($result);

DAO
1、 易用性比Active Record弱
2、 使用DAO,会繁琐的写sql语句,在日常的作业过程中,还可能会影响其开发效率
3、 应用程序的数据库操作性能会得到很大的提升
4、 失去了Yii模型中自身的一些验证功能—校验器(但是可以自定义模型,继承ActiveRecord类实现)
5、 分布式解决方案与Active Record一样,严格来说DAO更容易扩展(特别是在拆分表的的时候) 这条纯属于个人看法—需讨论得出最终结果

Active Record
1、 易用性比DAO强
2、 可以简化大量繁琐的sql语句,开发效率极高
3、 应用程序的数据操作性能没DAO好
4、 验证功能非常强大拥有校验器
5、 分布式服务器环境中扩展没DAO灵活 这条纯属于个人看法—需讨论得出最终结果

结论:
如果数据记录的查询量不是很多与并发不是很高 可以采用Active Record
查询量很大,并发很高 可以考虑DAO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值