where()使用数组的问题

浏览:4133 发布日期:2016/12/31 分类:求助交流 关键字: where 数组
TP用的是3.2.3
有数据库 字段 id user_name userpassword
$m=m('Usert');
$map['user_name']='wang';
$map['userpassword']='123';
$data=$m->where($map)->select();
dump($data);
转化后的sql是:
SELECT * FROM `usert` WHERE `user_name` = 'wang' AND `userpassword` = '123'
没问题,查出了一条数据
但 $map['user_name']='wang'; 不小心写成了$map['username']='wang';
也就是这个字段数据中不存在,而另一个 $map['userpassword']='123';是写对的,也就是只有一个字段是真实存在了,这时
转化后的sql是:
SELECT * FROM `usert` WHERE `userpassword` = '123'
居然也查出了一条数据 按作者意思应该满足两件条件才查出啊,如果一个条件写错了,应该报错啊。
于是试着把两个条件都写错,奇迹发生了
$m=m('Usert');
$map['username']='wang';
$map['userpass']='123';
$data=$m->where($map)->select();
dump($data);
转化后的sql是:
SELECT * FROM `usert`
好家伙,把整表的数据全查询出来了。
可能数组方式就是哪个数据数据库中没有,哪个条件就省略,全都写错了,就全省略了,是不是这样啊,各位前辈
最佳答案
评论( 相关
后面还有条评论,点击查看>>