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.csdn.net/straul/article/details/6320858

本文固定链接: http://www.ccsbbs.com.cn/archives/5725.html | 极限手指

该日志由 极限手指 于2013年02月22日发表在 YII 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: yii直接执行sql | 极限手指

yii直接执行sql:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!