ThinkPHP按条件查询的记录总是第一条是怎么回事?

baidu_33210997 2015-12-01 03:15:18
mysql数据库testsever中有一个user表,表结构就username和password两个字段,有4条记录:
username password
test 111111
lmm 123456
qazwsx qwerrty
qqq 111111
我做了个简单的查询方法,
$sql3="mysql://root:root@localhost:3306/testsever";
public function search()
{
$userName = $_REQUEST["user"];
//$username["USERNAME"] = "ugung";
$m = M("user", "", "$this->sql3");
$userData = $m->where(array('USERNAME'=>$username))->find();
if(!empty($userData))
{
$this->show('<h1>请求成功</h1>', 'utf-8');
$this->ajaxReturn(200,"请求成功",$userData);
}
else
{
$this->show('<h1>请求失败</h1>', 'utf-8');
$this->ajaxReturn(300,"请求失败");
}
}
我直接在浏览器上输入http://127.0.0.1/app/test.php?m=Index&a=search&user=qqq,按理说应该会返回最后那条记录,但是结果还是第一条test 11111的记录。我换成select()方法$userData = $m->select()后,这样四条记录全部获取到了。find()方法我知道只能查询一条记录,但是按where USERNAME=’qqq‘查询之后肯定只有一条记录啊。我实在找不出原因啊,求各位大神指点啊!
...全文
769 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-12-02
  • 打赏
  • 举报
回复
你不是已查到 第一条 数据了吗?
baidu_33210997 2015-12-02
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
根据用户名查询用户信息 肯定只会得到一条记录(用户名不会相同) 这与 find方法最多只会返回一条记录 并不矛盾
那为啥同样的方法,一个可以根据用户名查询指定的数据,另一个就不行呢?
智商众筹 2015-12-02
  • 打赏
  • 举报
回复
$userData = $m->where(array('USERNAME'=>$username))->find(); 你先把$username 写死成 'qqqq'试试,然后把数组形式的where条件,改成字符串的再试试
bear63 2015-12-02
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
手册中说的很清楚了: 读取数据的操作其实和数据集的类似,select可用的所有连贯操作方法也都可以用于find方法,区别在于find方法最多只会返回一条记录,因此limit方法对于find查询操作是无效的。 如果这也都视而不见的话,最好还是改行吧
看来我得改行了。。。。
xuzuning 2015-12-02
  • 打赏
  • 举报
回复
find方法最多只会返回一条记录 看不明白吗?
baidu_33210997 2015-12-02
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
你不是已查到 第一条 数据了吗?
不管我把用户名指定为哪个,查出来 的始终都是第一条,所以才问的. 之前检查了代码以为将$userName变量名改为一样就可以了,结果还是不行。
xuzuning 2015-12-01
  • 打赏
  • 举报
回复
根据用户名查询用户信息 肯定只会得到一条记录(用户名不会相同) 这与 find方法最多只会返回一条记录 并不矛盾
baidu_33210997 2015-12-01
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
手册中说的很清楚了: 读取数据的操作其实和数据集的类似,select可用的所有连贯操作方法也都可以用于find方法,区别在于find方法最多只会返回一条记录,因此limit方法对于find查询操作是无效的。 如果这也都视而不见的话,最好还是改行吧
我同样的方法,根据用户名查询用户信息的,为啥这个就可以得到想要的记录啊? public function userinfo() { $userName = $_REQUEST["username"]; $m = M("user", "m_", "$this->sql"); $data = $m->where(array('USERNAME'=>$userName))->find(); if(!empty($data)) { $this->ajaxreturn(200, C('success.' . $this->lang), $data); } else { $this->ajaxreturn(300, C('fail.' . $this->lang)); } }
xuzuning 2015-12-01
  • 打赏
  • 举报
回复
手册中说的很清楚了: 读取数据的操作其实和数据集的类似,select可用的所有连贯操作方法也都可以用于find方法,区别在于find方法最多只会返回一条记录,因此limit方法对于find查询操作是无效的。 如果这也都视而不见的话,最好还是改行吧
baidu_33210997 2015-12-01
  • 打赏
  • 举报
回复
还是不对啊,我把两个变量名字改成一样的了,查询的结果还是第一条!没天理啊!来神啊!人已经不起用了!
baidu_33210997 2015-12-01
  • 打赏
  • 举报
回复
我去,我找到了!你妹啊!真想抽自己一个大嘴巴!因为是手打的,$userName = $_REQUEST["user"]; 和$userData = $m->where(array('USERNAME'=>$username))->find(); 两个$userName和$username不一样,我去他大爷的!以后坚决不手打了,复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴复制粘贴多好啊
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化算法(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化算法,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制算法设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化算法在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO算法与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解算法性能与控制精度之间的内在联系。

20,393

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧