博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii框中findOne()的用法
阅读量:7263 次
发布时间:2019-06-29

本文共 450 字,大约阅读时间需要 1 分钟。

在使用findOne($a)的时候会出现

          Call to a member function update() on array这样的错误。

但是明明$a的值等于某一值,在数据库中可以查到却依然报错。

奇怪的是有时候当$a为其他值的时候又不报错,这是什么原因呢?

原来在yii的内部,当使用findOne()的时候不管括号里面是什么变量,这个$a的值都将赋值给数据库中的主键(id)然后进行查询。

比如:如果你的主键是id, 你想查询的代码是 $a=1;  $b  =  A::findOne($a);  

其实进行的查询是$b  =  A::find()->Where ( [ ' id ' => " $a " ] )->one();。

所以这个时候当$a的值如果恰好等于主键的值的时候不报错,如果不等于的话可能报错,也可能查询出来的值不是你期望得到的值

所以当 $a 不是主键时不要使用findOne

转载于:https://www.cnblogs.com/wangshuazi/p/9402513.html

你可能感兴趣的文章
如何理解我们的记忆?
查看>>
NYOJ242计算球体积
查看>>
Eclipse中SVN的安装步骤(两种)和用法
查看>>
php 生成下载连接
查看>>
手机号ID开关星号(*)
查看>>
java数据类型
查看>>
ubuntu 16.04 tmux
查看>>
ABP框架 - Swagger UI 集成
查看>>
索引排序
查看>>
input onchange事件
查看>>
Laravel Homestead 离线安装
查看>>
换行符java去除字符串中的空格、回车、换行符、制表符
查看>>
杀人游戏系列 之二
查看>>
正则表达式初学笔记
查看>>
Kruskal算法模拟讲解
查看>>
Summary: rand5构造rand7
查看>>
MySQL存储过程中判断形参是否为空null
查看>>
关于标准C语言的预定义宏【转】
查看>>
shell调试【转】
查看>>
网站性能分析(下)-让网站并行加载但顺序执行JS
查看>>