Yii框架 CURD

1、Yii框架的sql语句

说明:CDbCommand表示一个针对数据库执行的SQL语句

2、相关连接

yii连接:http://www.php100.com/manual/yii/CDbCommand.html

源代码:framework/db/CDbCommand.php

3、调用createCommand() 方法

(1)它通常通过调用CDbConnection::createCommand创建

(2)要执行一条非查询的SQL(如:insert,delete,update),调用execute

(3)要执行一条SQL语句返回结果数据集(如:SELECT), 使用 query 或它的简便版本 queryRow, queryColumn或者queryScalar

queryRow:执行此SQL语句并返回结果的第一行

queryColumn:执行SQL语句并返回结果的第一列

queryAll:执行SQL语句并返回所有行

query:执行SQL语句并返回查询结果

queryScalar:执行此SQL语句并返回第一行数据的第一列的值

格式如下:

$user = Yii::app()->db->createCommand()
    ->select(‘username, password‘)
    ->from(‘tbl_user‘)
    ->where(‘id=:id‘, array(‘:id‘=>1))
    ->queryRow();

相关 CURD操作如下:

一、select 操作查询数据集合

查询所有信息

$admin=Admin::model()->findAll($condition,$params);
该方法是根据一个 条件查询一个集合如:findAll(username=:name,array(:name=>$username))

根据主键查询所有信息

$admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
findAllByPk($id,name like :name and age=:age,array(:name=>$name,age=>$age));
该方法是根据主键查询一个集合,可以使用多个主键如:findAllByPk(array(1,2));

根据查询条件查询所有信息

$admin=Admin::model()-> findAllByAttributes($attributes,$condition,$params);
该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,如:findAllByAttributes(array(username=>admin));

根据sql语句查询信息

$admin=Admin::model()->findAllBySql($sql,$params);
该方法是根据SQL语句查询一个数组如:findAllBySql(select *from admin where username=:name,array(:name=>admin));

select查询对象的方法

$admin=Admin::model()->findByPk($postID,$condition,$params);
根据主键查询出一个对象
如:findByPk(1);  
$row=Admin::model()->find($condition,$params);
根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据如:find(username=:name,array(:name=>admin));

拼一个获得SQL的方法,在根据find查询出一个对象

$criteria=new CDbCriteria;
$criteria->select=username; // only select the title column
$criteria->condition=username=:username;
$criteria->params=array(:username=>admin);
$post=Post::model()->find($criteria); // $params isnot needed

判断是否找到数据

$exists=Post::model()->exists($condition,$params);

该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到

二、 create 添加的方法

$admin=newAdmin;
$admin->username=$username;
$admin->password=$password;
if($admin->save()){
echo 添加成功;
}else{
echo 添加失败;
}

三、update 修改的方法

(1)

Post::model()->updateAll($attributes,$condition,$params);
$count =Admin::model()->updateAll(array(username=>11111′,password=>11111′),password=:pass,array(:pass=>1111a1′));
if($count>0){
echo 修改成功;
}else{
echo 修改失败;
}

(2)

Post::model()->updateByPk($pk,$attributes,$condition,$params);
$count =Admin::model()->updateByPk(1,array(username=>admin,password=>admin));
$count =Admin::model()->updateByPk(array(1,2),array(username=>admin,password=>admin),username=:name,array(:name=>admin));
if($count>0){
echo 修改成功;
}else{
echo 修改失败;
}
$pk 代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合,$condition代表条件,$params传入的值

(3)

Post::model()->updateCounters($counters,$condition,$params);
$count=Admin::model()->updateCounters(array(status=>1),username=:name,array(:name=>admin));
if($count>0){
echo 修改成功;
}else{
echo 修改失败;
}array(status=>1)代表数据库中的admin表根据条件username=admin,查询出的所有结果status字段都自加1

(4)

// 第一,建立一个连接:
$connection = Yii::app()->db;
// 第二,写SQL语句,比如:
$sql="INSERT INTO tbl_user (username, email) VALUES(:username,:email)";
// 第三,创建CDbCommand对象用于执行SQL
$command=$connection->createCommand($sql);
// 接下来,将SQL语句中的形式参数,替换为实际参数
$command->bindParam(":username",$username,PDO::PARAM STR);   // 这与PDO有点不同,PDO中不带冒号
$command->bindParam(":email",$email,PDO::PARAM STR);    // 同样
// 最后,执行
$command->execute();

四、delete 删除的方法

(1)

Post::model()->deleteAll($condition,$params);
$count = Admin::model()->deleteAll(username=:nameandpassword=:pass,array(:name=>admin,:pass=>admin));
$id=1,2,3
deleteAll(id in(.$id.));删除id为这些的数据
if($count>0){
echo 删除成功;
}else{
echo 删除失败;
}

(2)

Post::model()->deleteByPk($pk,$condition,$params);
$count = Admin::model()->deleteByPk(1);
$count =Admin::model()->deleteByPk(array(1,2),username=:name,array(:name=>admin));
if($count>0){
echo 删除成功;
}else{
echo 删除失败;
}
时间: 2024-10-08 01:06:40

Yii框架 CURD的相关文章

YII框架分析笔记5:控制器和动作

CBaseController是控制器和挂件的基类,主要提供了视图渲染,挂件,剪辑.片段缓存等方法,CController是所有应用中自定义控制器的基类. 创建动作 [php] view plaincopy public function run($actionID) { if(($action=$this->createAction($actionID))!==null) { if(($parent=$this->getModule())===null) $parent=Yii::app()

与《YII框架》不得不说的故事—5篇目录

与<YII框架>不得不说的故事—基础篇 第1章 课程目标 1-1 课程目标 (00:54) 第2章 课前知识准备 2-1 YII的启动和安装 (05:12) 2-2 YII请求处理流程 (02:44) 2-3 命名空间 (10:46) 第3章 控制器 3-1 控制器的创建 (03:22) 3-2 控制器之请求处理 (05:58) 3-3 控制器之响应处理 (09:09) 3-4 控制器之session处理 (09:25) 3-5 控制器之cookie处理 (09:11) 第4章 视图 4-1

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

使用Yii框架中遇到的三个问题

以下由我们在信易网络公司开发项目的时候终结出的一些经验 1.main.php文件中欲引入全局变量的问题 还原一下此问题:在Yii框架中,main.php一般会作为整个应用的配置文件,保存Application的各种参数,直接return数组.在使用的过程中,因为main.php文件一定会被Yii提前加载,所以将一些全局性的操作也放在了此文件,加载一些类操作啥的没有什么问题,当有一次加了一个全局变量,并且在其它地方使用global获取全局变量时,发现无论我如何努力都得到的是NULL.各种尝试后,终

Yii框架 400 错误

YII  400错误 在YII框架中400错误是csrf校验失败的意思 csrf是什么? CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用. 所以,如果你自己没有csrf校验机制,严禁关闭csrf. 怎么关呢? public $enableCsrfValidation=false;  设置 为false为成员变量 如果不关.怎么

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 &#39;AR模式&#39;]

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

YII框架的依赖注入容器

依赖注入(Dependency Injection,DI)容器就是一个对象,它知道怎样初始化并配置对象及其依赖的所有对象. 所谓的依赖就是,一个对象,要使用另外一个对象才能完成某些功能.那么这个对象就依赖于被使用的对象. 例如: /** * 厨师 */ class cook { /** * 制作食物 */ public function cooking() { $food = new food(); echo $food->get(),"汤<br/>"; } } /*

Yii框架配置

1.将yii框架命令行工具yiic.bat的路径加入环境变量,以便可以使用CMD命令创建项目 2.创建项目: framework是yii的核心,尽量保持核心包的完整性以后创建多个项目时可以共用,在framework同级的目录创建一个自己的项目文件夹,如:webapp CMD创建项目:>yiic webapp ../webapp/myblog(因为配置的环境变量是在framework下,故返回上层找webapp) 尊重原创,转载请保留:(Yii框架配置)http://www.cnblogs.com

yii框架之gii创建数据表对应的model类

一.首先是在数据库中建立工程需要的表: 二.然后,配置对应文件: 在工程目录下yiiProject\protected\config\main.php.在50行定义了db应用组件,下面后一段注释掉了的mysql的链接配置项,我们将未注释的db注释掉,然后打开mysql链接代码并填写相关信息即可完成mysql链接配置项. 即,把下面代码         'db'=>array(             'connectionString' => 'sqlite:'.dirname(__FILE_