Yii2增删改查-查询 find

2024-05-03 13:32
文章标签 查询 find 改查 增删 yii2

本文主要是介绍Yii2增删改查-查询 find,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

这里只是简单讲一下用法,如果想更详细的了解,去看 官方手册 比较好。

Yii内部提供了一套查询方法,方便我们更加规范的查询sql,这些方法安全,并且组合起来会更加高效。

小试牛刀
$sql = 'SELECT * FROM {{user}} WHERE id = 1';
$userInfo = User::findBySql($sql)->all();
/* 查询出来一条数据
array(1) {[0]=>object(app\models\User)#49 (8) {["_attributes":"yii\db\BaseActiveRecord":private]=>array(2) {["id"]=>int(1)["name"]=>string(6) "张三"}["_oldAttributes":"yii\db\BaseActiveRecord":private]=>array(2) {["id"]=>int(1)["name"]=>string(6) "张三"}["_related":"yii\db\BaseActiveRecord":private]=>array(0) {}["_errors":"yii\base\Model":private]=>NULL["_validators":"yii\base\Model":private]=>NULL["_scenario":"yii\base\Model":private]=>string(7) "default"["_events":"yii\base\Component":private]=>array(0) {}["_behaviors":"yii\base\Component":private]=>array(0) {}}
}
*/

可以看出来数据被我们查出来了,并且是个二维数组,数据在二维数组中的对象中。但是这种查询方式并不安全,极有可能会被sql注入,为了防止这种情况,Yii提供了一种方式。

深入了解
$sql = 'SELECT * FROM {{user}} WHERE id = :id';
$userInfo = User::findBySql($sql,array(':id'=>'1'))->all();
// 跟上面同样的效果,这里我就不列出来了
// 这种查询方法极有效的阻止了sql的注入// 实际Yii已经把sql那个部分也封装起来了
$userInfo = User::find()->where(['id'=>1])->all();
// 查询出来的结果同样跟上面一样// 我们试试当id大于1时,该怎么写?
$userInfo = User::find()->where(['>' , 'id' , '1'])->all();// 我们假如要id=1和id=3的数据,该怎么写?
$userInfo = User::find()->where(['or' , 'id = 1' , 'id = 3'])->all();// 光以数组的方式显示即可
$userInfo = User::find()->where(['>' , 'id' , '1'])->asArray()->all();
/* 出来的结果如下
array(2) {[0]=>array(2) {["id"]=>string(1) "2"["name"]=>string(6) "李四"}[1]=>array(2) {["id"]=>string(1) "3"["name"]=>string(6) "王五"}
}
*/// 有时候我们只需要列出来一条数据
$userInfo = User::find()->where(['id'=>1])->asArray()->one();
/* 所以结果只是一个一维数组
array(2) {["id"]=>string(1) "1"["name"]=>string(6) "张三"
}
*/

关于where里面还有很多查询方式,例如:betweenbetweennot betweenlike等等,你可以看看我的另一篇文章【Yii增删改查-查询 where参数详细介绍】。

这篇关于Yii2增删改查-查询 find的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/956864

相关文章

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

ural 1026. Questions and Answers 查询

1026. Questions and Answers Time limit: 2.0 second Memory limit: 64 MB Background The database of the Pentagon contains a top-secret information. We don’t know what the information is — you

Mybatis中的like查询

<if test="templateName != null and templateName != ''">AND template_name LIKE CONCAT('%',#{templateName,jdbcType=VARCHAR},'%')</if>