yii源码三 -- db

CDbConnection:
path:/framework/db/CDbConnection.php
overview:CDbConnection represents a connection to a database.

工作原理:CDbConnection works together with CDbCommand, CDbDataReader and CDbTransaction to provide data access to various DBMS。且基于PDO扩展。

  首先用$connection = new CDbConnection($dsn,$username,$password)创建一个连接实例,然后调用$connection->active=true启动连接。

用法:
1.创建DB实例并建立连接:

$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true; //建立连接

2.执行sql语句:

$command=$connection->createCommand($sqlStatement);
$command->execute();   //执行非查询语句(insert,delete,update)
$reader=$command->query();//执行查询语句(select)

备注:预处理和绑定参数用法:

$command=$connection->createCommand($sqlStatement);
$command->bindParam($name1,$value1);
$command->bindParam($name2,$value2);
$command->execute();

3.获取结果:

foreach($reader as $row){
      ......
}

4.事务:

$transaction=$connection->beginTransaction();
try{
    $connection->createCommand($sql1)->execute();
    $connection->createCommand($sql2)->execute();
    //.... other SQL executions
    $transaction->commit();
}catch(Exception $e){
    $transaction->rollback();
 }

5.由于CDbConnection实现了IApplicationComponent接口,所以它可以当作一个application component并且在application配置文件(main.php)里配置数据库连接信息:

array(
     ‘components‘=>array(
         ‘db‘=>array(
              ‘class‘=>‘CDbConnection‘,
              ‘connectionString‘=>‘sqlite:path/to/dbfile‘,
         ),
     ),
)

yii源码三 -- db,布布扣,bubuko.com

时间: 2024-10-25 07:20:06

yii源码三 -- db的相关文章

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

JFinal 源码分析 [DB+ActiveRecord]

我记得以前有人跟我说,“面试的时候要看spring的源码,要看ioc.aop的源码"那为什么要看这些开源框架的源码呢,其实很多人都是"应急式"的去读,就像读一篇文章一下,用最快的速度把文章从头到尾读一遍,那结果就是当你读完它,你也不清楚它讲了一个什么故事,想表达什么. 一个优秀的架构的源码我认为就好像一本名著一样,你的“文学”水平越高,你就越能读出作者设计的精妙之处.一篇源码在你不同水平的时候,能读出不同的东西,因此,我觉得优秀的框架的源码是经久不衰的,反复读多少次都不嫌多,

yii源码一

CComponent: path:framework/base/CComponent.php overview:This file contains the foundation classes for component-based and event-driven programming.              (包含基于组件和事件驱动编程的基础类,是所有components的基类) 1.property定义 $a=$component->text; // equivalent to $

yii源码分析4——非核心类的导入注册

转载请注明: TheViper http://www.cnblogs.com/TheViper  在yii源码分析1中说到spl_autoload_register注册给定的函数作为 __autoload 的实现,在这里是autoload(). public static function autoload($className) { include self::$_coreClasses [$className]; } 实际上这个autoload()是没有考虑非核心文件的引入的.比如,在app

yii源码二 -- interfaces

path:framework/base/interfaces.php overview:This file contains core interfaces for Yii framework. interface IApplicationComponent:all application components must implement. 在application完成配置后就调用init()初始化application. interface ICache:must be implemente

CAD ObjectARX扩展工具的源码(三)

CAD ObjectARX扩展工具的源码(三)//得到文本边界oid CDrawFunction::getTextBoundary(AcDbObjectId objectId,double offset,AcDbObjectId &textBoundaryId){AcDbExtents Ext;AcDbEntity *pEnt;acdbOpenObject(pEnt,objectId,AcDb::kForWrite);if(pEnt->isKindOf(AcDbText::desc())){

Yii源码阅读笔记(三十三)

ServiceLocator,服务定位类,用于yii2中的依赖注入,通过以ID为索引的方式缓存服务或则组件的实例来定位服务或者组件: 1 namespace yii\di; 2 3 use Yii; 4 use Closure; 5 use yii\base\Component; 6 use yii\base\InvalidConfigException; 7 8 /** 9 * ServiceLocator implements a [service locator](http://en.wi

yii源码分析I、II

转载请注明:TheViper http://www.cnblogs.com/TheViper/ 本文将对yii中的mvc,路由器,filter,组件机制等最主要的部分进行自己的一点浅析,力求说明自己做一个php mvc不是那么的遥不可及,其实是很简单的. 源码基于yii 1.13,为了方便说明,我对其进行了大量的裁剪,不过还是让他保有上面的那些最重要的功能.裁剪下来,其实没有几个文件了,而且每个文件代码最多100多行,避免因为代码太多而懒得看. 所谓的mvc都是让所有请求从一个地方进去,通过对请

Yii源码阅读笔记(一)

今天开始阅读yii2的源码,想深入了解一下yii框架的工作原理,同时学习一下优秀的编码规范和风格.在此记录一下阅读中的小心得. 每个框架都有一个入口文件,首先从入口文件开始,yii2的入口文件位于web目录的index.php,用于启动web应用和配置一些路径参数. index.php—— 1 // comment out the following two lines when deployed to production 2 defined('YII_DEBUG') or define('Y