Yii中直接使用sql

在Yii中直接使用sql,是建立在php扩展PDO的基础之上。(使用前,确保PDO已安装)

一、建立连接
$connection = Yii::app()->db;

其中db是在../config/main.php中配置的


二、使用sql

1,查询——query
方式一:最简洁
Php代码   收藏代码
  1. $sql = "select a.id,b.name,parts_type,parts_model,partManufacturer,number,confirm_ok_num,confirm_bad_num from fail_parts a, idc b where a.idc_id = b.id and a.status_id != 731 and confirm_bad_num != 0 order by b.name;";  
  2.   
  3. //可以写成  
  4. //$connection = Yii::app()->db;   
  5. //$command = $connection->createCommand($sql)  
  6.   
  7. $command = Yii::app()->db->createCommand($sql);  
  8. $rows = $command->queryAll(); //结果数组,多行的内容  
  9.   
  10. var_dump($rows);  
  11.   
  12. foreach($rows as $row){  
  13.     var_dump($row);//一行的内容  
  14. }  


方式二:主要区别在查询动作。
可拆分为两步
Php代码   收藏代码
  1. $dataReader = $command->query();  
  2. while(($row = $dataReader->read()) !== false){  
  3.     var_dump($row);//一行的内容  
  4. }  



2,创建、更新和删除——execute

$rowCount = $command->execute();  //执行



三、query的高级用法

$row    = $command->queryRow();     //取多列结果中的第一列
$column = $command->queryColumn();  //取多列结果中第一行的第一列
$value  = $command->queryScalar();  //取多列结果中第一行的第一字段


四、使用事务
Php代码   收藏代码
  1. $trans = $connection->beginTransaction();  
  2. //$trans = Yii::app()->db->beginTransaction();  
  3. try{  
  4.     $connection->createCommand($sql1)->execute();  
  5.     $connection->createCommand($sql2)->execute();  
  6.     ...  
  7.     $trans->commit();  
  8. } catch (Exception $e) {  
  9.     $trans->rollBack();  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值