Yii AR对象model查询

Cortex-M内核DWT周期计数器:从原理到STM32实战时间测量与性能分析 在嵌入式开发中,代码执行耗时测量是性能优化的基础。除了依赖外设定时器或SysTick,ARM Cortex-M3/M4/M7内核自带的DWT(Data Watchpoint and Tracker)调试组件提供了一种极低侵入性的硬件计时方案。其内部的32位周期计数器CYCCNT跟随内核时钟递增,无需占用额外引脚或定时器资源,即可实现纳秒级分辨率的函数耗时测量、中断响应分析及延时实现。从DWT寄存器配置、周期差值计算到基于SystemCoreClock的微秒换算,开发者可以快速搭建一套轻量级性能分析工具。本文 阅读详情
 对于一个Model Post 有如下的4中查询方法,返回对象或者对象数组。

 // find the first row satisfying the specified condition


$post=Post::model()->find($condition,$params);
// find the row with the specified primary key
$post=Post::model()->findByPk($postID,$condition,$params);
// find the row with the specified attribute values
$post=Post::model()->findByAttributes($attributes,$condition,$params);
// find the first row using the specified SQL statement
$post=Post::model()->findBySql($sql,$params);

 

假设我们查询postID = 10的数据,怎么查询呢,见下面

 // find the row with postID=10

$post=Post::model()->find('postID=:postID', array(':postID'=>10));

条件$condition 就是我们sql里的where部分,那参数怎么办呢,通过params传递,不过名字是加了":"的。

 

YII有个CDbCriteria类来构造查询,如果我们查询postId为10的title,CdbCriteria是这样构造的

$criteria=new CDbCriteria;
$criteria->select='title';  // only select the 'title' column
$criteria->condition='postID=:postID';
$criteria->params=array(':postID'=>10);

$post=Post::model()->find($criteria); // $params is not needed 

 

 你也可以写成下面这样

$post=Post::model()->find(array(
    
'select'=>'title',
    
'condition'=>'postID=:postID',
    
'params'=>array(':postID'=>10),

)); 

 

findByAttributes 里的

$attributes就是字段的名字.

Post::model()->findByAttributes(array('title'=>'abc'))

$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); 
该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,根据属性来查询,就想sql的where里的多个and如
如: 
findAllByAttributes(array('username'=>'admin'));
SELECT *  from one_table where username = 'admin' and password = '123456';
 对应的AR model查询如下
Admin::model()->findAllByAttributes(array('username'=>'admin', 'password'=>'123456')); 
$admin=Admin::model()->findAllBySql($sql,$params);  
该方法是根据SQL语句查询一个数组,如: 
findAllBySql("select *from admin where username=:name",array(':name'=>'admin')); 


二、查询对像的方法 

$admin=Admin::model()->findByPk($postID,$condition,$params); 
根据主键查询出一个对象,如:findByPk(1); 
$row=Admin::model()->find($condition,$params); 
根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据,如: 
find('username=:name',array(':name'=>'admin')); 
$admin=Admin::model()->findByAttributes($attributes,$condition,$params); 
该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,他查询的也是第一条数据,如: 
findByAttributes(array('username'=>'admin')); 

$admin=Admin::model()->findBySql($sql,$params); 
该方法是根据SQL语句查询一组数据,他查询的也是第一条数据,如: 
findBySql("select *from admin where 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 is not needed 
 
 
三、查询个数,判断查询是否有结果 
$n=Post::model()->count($condition,$params); 
该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字,如 
count("username=:name",array(":name"=>$username));     

$n=Post::model()->countBySql($sql,$params); 
该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字,如 
countBySql("select *from admin where username=:name",array(':name'=>'admin')); 
 
$exists=Post::model()->exists($condition,$params); 
该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到 
 
 
四、添加的方法 
$admin=new Admin;         
$admin->username=$username; 
$admin->password=$password; 
if($admin->save()>0){ 
    echo "添加成功"; 
}else{ 
    echo "添加失败"; 

} 


五、修改的方法 
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 "修改失败"; 
} 

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传入的值 

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 

 

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

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 "删除失败"; 

} 

Vue3 与 Bpmn-js:打造现代化 BPMN 流程设计器 随着业务流程的复杂化,流程设计器成为企业级应用中不可或缺的一部分。BPMN(Business Process Model and Notation)是一种标准的业务流程建模语言,广泛应用于业务流程管理。本文将介绍如何使用 Vue3 和 Bpmn-js 打造一个现代化的 BPMN 流程设计器。 阅读详情

相关推荐

利用 Openocd 和 FT2232H 实现 ARMv8(Coretex-A53)高效调试方案

本文详细介绍了如何利用开源工具OpenOCD与高性能USB转接芯片FT2232H,构建一套针对ARMv8架构(如Cortex-A53)的高效、低成本调试方案。内容涵盖从环境搭建、驱动配置、核心调试架构解析到实战问题排查的全过程,帮助开发者实现对多核处理器的透明、可控调试,是嵌入式Linux及底层开发的实用指南。

weixin_29163581的博客 280

YII之模型类打印sql

dj1540225203的博客 339

密码学新手必看:三大顶级会议论文下载与阅读指南(附完整资源链接)

本文为密码学新手提供了系统性的三大顶级会议(Crypto、Eurocrypt、Asiacrypt)论文学习指南。内容涵盖如何高效获取最新论文资源、结构化精读论文的方法论,以及将理论转化为代码实践的路径,旨在帮助初学者快速构建密码学知识体系并应用于研究。

weixin_29214691的博客 319

Yii AR Model 查询

 Yii AR很好很强大,但刚开始不知道怎么使用   如果英文不错,可以直接看原文地址http://www.yiiframework.com/doc/guide/1.1/en/database.ar   下面是我对AR的一些理解  对于一个Model Post 有如下的4中查询方法,返回对象或者对象数组。  // find the first row satisfying the spec...

weixin_33851604的博客 156

GD32F103程序烧录全攻略:从SWD到串口的实战指南

本文提供了GD32F103微控制器程序烧录的全面实战指南,详细介绍了SWD、JTAG和串口(ISP)三种主流下载方式。文章重点解析了在Keil MDK中使用ST-Link进行SWD下载的完整步骤,包括硬件连接、软件配置和Flash算法设置,并针对烧录过程中的常见问题提供了实用的排坑解决方案,帮助开发者高效完成程序部署。

weixin_29191669的博客 437

AI产品经理面试宝典第9天:关于AI产品经理的挑战与转型怎么回答

AI技术重构产品逻辑,AI产品经理需直面三大核心命题:用户定位差异、技术融合边界、商业价值转化。本文从千道真题中提炼出面试高频考点,剖析AI产品经理如何突破传统思维定式,在B端需求与C端体验间构建价值桥梁,用数据驱动产品创新,破解技术落地的隐性壁垒。掌握这三重跃迁法则,助你在AI浪潮中脱颖而出。

打造全国最全的AI Agent开发知识领域的博客 175

数据查询

基础查询 Customer::find()->one();    此方法返回一条数据; Customer::find()->all();    此方法返回所有数据; Customer::find()->count();    此方法返回记录的数量; Customer::find()->average();    此方法返回指定列的平均值; Customer::find()->min();

user_xxsl的博客 478

大模型技术全景与核心概念解析:从基础原理到AI智能体架构(实时更新中)

本文系统解析了大模型技术的核心概念与架构。首先介绍了LLM(大语言模型)、LLMOps(模型运维)、AIGC(生成内容)、AGI(通用AI)等基础概念,重点阐述了大模型的工作原理,包括预处理、推理和后处理三个阶段。深入讲解了Token分词、FLOPs计算、Embedding向量表示等关键技术,并分析了LoRA微调、MoE架构等前沿方法。文章还探讨了AI智能体的发展前景,为理解大模型技术提供了全景视角。

算法工程师 1238

yii2 model查询

public function search($parms) { $query = User::find()->joinWith([ 'info' ..... ]) //分页 $dataProvider = new ActiveDataProvider([ 'query' => $query, ...

Q斗士 1495

一个非常简单的变分量子分类器 (VQC)

​ 在之前的帖子(这里和这里)中,我已经开始谈论 QML,为什么以及如何学习,从现在开始,我将开始分享我的研究和发现,到目前为止,这些都是非常基本的。​

gongdiwudu的专栏 6208

STM32 HAL SDADC DMA

由于项目需要使用STM32F373单片机的SDADC功能对电位计进行检测,网上资料比较少,踩了很多坑,下面进行总结。

weixin_44597885的博客 1196

使用yii AR 完成单个表的CURD操作

什么是AR(ActiveRecord) Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列 要想使用AR 操作 首先应该有一个Mode...

weixin_45971885的博客 136

【乐企】开票控制服务

例子:企业信息初始化。

九七的博客 452

Yii 之 Model 使用方法

Yii AR很好很强大,但刚开始不知道怎么使用   如果英文不错,可以直接看原文地址http://www.yiiframework.com/doc/guide/1.1/en/database.ar 下面是我对AR的一些理解 对于一个Model Post 有如下的4中查询方法,返回对象或者对象数组。 // find the first row satisfying the specifi

libo_sina的专栏 8987

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Yii AR Model查询

原文地址: http://www.cnblogs.com/likwo/archive/2011/09/01/2162017.html 个人觉得这篇文章写得很不错 Yii AR很好很强大,但刚开始不知道怎么使用   如果英文不错,可以直接看原文地址http://www.yiiframework.com/doc/guide/1.1/en/database.ar   下面是我对A

对代码不满足,是任何真正有天才的程序员的根本特征。 553

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

yii mysql 查询 类型转换_yii2 数据库查询结果字段类型的问题

yii2数据库查询默认返回的为AR对象,此时字段类型与数据库的基本相符,但如果使用 asArray 以数组的方式返回时,默认字段类型全都是 string,如果这样 json_encode 后返回给 App端的话,会被 Android/IOS这些强类型语言端的工程师们喷死,php会再次被推向风口。原因是 pdo 在 yii2盛行时还不够完善,一些特性是后期加进来的,比如我们急切需要的返回的结果数据类...

weixin_36322454的博客 519

Yii Ar model 查询

Ar model 查询 参照表: CREATE TABLE tbl_user ( id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128)...

weixin_30477293的博客 106

yii2 mysql model_Yii中Model(模型)的创建及使用方法

本文实例分析了Yii中Model(模型)的创建及使用方法。分享给大家供大家参考,具体如下:YII 实现了两种模型,表单模型(CFormModel类)和Active Record模型(CAtiveRecord类),它们都继承自CModel类。 CFormModel代表的数据模型是从HTML表单收集的输入,封装了所有逻辑(如表单的验证和其它业务逻辑,应用到表单的域上)。它能将数据存储在内 存中,或者在...

weixin_39726379的博客 1104

Yii2 关联查询结果AR对象 如何取到表以外的字段

一、 model模型中重写 fields 方法 public function fields() { $fields = parent::fields(); $fields['store_id'] = 'store_id'; $fields['name'] = 'name'; $fields['username'] = 'username'; $fields['password'] = 'password'; $fields['integral'

九步 356

yii model层操作

tableName – 设置Model所对应的表名rules – 设置Model里各字段的验证规则relations – 设置关联规则attributeLabels – 设置各字段的别名safeAttributes – 设置可以修改属性的字段beforeValidate和afterValidate – 字段验证前和验证后执行的函数, 需要返回true值beforeSave和afterSave –

Esc80的专栏 3153
上一篇: PHP数学运算和日期相关
下一篇: php字符串处理
sofia1217
博客等级 码龄17年 36粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值