当前位置: 代码迷 >> SQL >> 在Yii中直接运用sql
  详细解决方案

在Yii中直接运用sql

热度:105   发布时间:2016-05-05 13:38:45.0
在Yii中直接使用sql
在Yii中直接使用sql,是建立在php扩展PDO的基础之上。(使用前,确保PDO已安装)

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

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


二、使用sql

1,查询——query
方式一:最简洁
$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;";//可以写成//$connection = Yii::app()->db; //$command = $connection->createCommand($sql)$command = Yii::app()->db->createCommand($sql);$rows = $command->queryAll(); //结果数组,多行的内容var_dump($rows);foreach($rows as $row){	var_dump($row);//一行的内容}


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



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

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



三、query的高级用法

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


四、使用事务
$trans = $connection->beginTransaction();//$trans = Yii::app()->db->beginTransaction();try{	$connection->createCommand($sql1)->execute();	$connection->createCommand($sql2)->execute();	...	$trans->commit();} catch (Exception $e) {	$trans->rollBack();}


  相关解决方案