yii直接执行sql

例1

$connection = Yii::app()->db;
$sql = "SELECT * FROM `project` ORDER BY id DESC";
$command =  $connection->createCommand( $sql);
$result =  $command->queryAll();

print_r($result); 


例2

复制代码

 $db = Yii::app()->db; //you have to define db connection in config/main.php

$sql = "select sum(if(starttime>'09:00:00',1,0)) as late,
  sum(if(endtime<'18:00:00',1,0)) as early         
from present where userid=:userid and date between :date_start and :date_end"
$results =  $db->createCommand( $sql)->query( array(
  ':userid' => 115,':date_start'=>'2009-12-1',':date_end'=>'2009-12-31',
));
foreach( $results  as  $result){
   echo  $result['late']," and ", $result['early']," /n";
}
复制代码


 例3

复制代码

 $sql = "select sum(if(starttime>'09:00:00',1,0)) as late,

  sum(if(endtime<'18:00:00',1,0)) as early         
from present where userid=115 and date between '2009-12-1' and '2009-12-31'"
$results =  $db->createCommand( $sql)->query();
foreach( $results  as  $result){
   echo  $result['late']," and ", $result['early']," /n";
}
复制代码


例4

复制代码
$oDbConnection = Yii::app()->db;  //  Getting database connection (config/main.php has to set up database
// Here you will use your complex sql query using a string or other yii ways to create your query

$oCommand =  $oDbConnection->createCommand('SELECT * FROM my_table WHERE myAttr = :myValue');
//  Bind the parameter
$oCommand->bindParam(':myValue',  $myValueThatCameFromPostOrAnywereElse, PDO::PARAM_STR);
 

$oCDbDataReader = $oCommand->queryAll(); // Run query and get all results in a CDbDataReader 

复制代码

 

说明:把查询条件作为参数(如例2),比较安全,可直接避免注入。要是直接用在SQL语句中,最好要经过防注入处理。

come from http://blog.youkuaiyun.com/straul/article/details/6320858 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值