Heim > Backend-Entwicklung > PHP-Tutorial > thinkphp数组查询问题

thinkphp数组查询问题

WBOY
Freigeben: 2016-06-23 13:26:16
Original
989 Leute haben es durchsucht

thinkphp中查询条件为

$map['id'] = I('get.id');$map['cid'] = i('get.cid');$m->where($map)->find();
Nach dem Login kopieren


生成的SQL语句为
SELECT `id`,`title`,`pic` FROM `news` WHERE `id` = null AND `cid` = null  LIMIT 0,12
Nach dem Login kopieren


也就是说,当获取的ID和CID为空时,这个查询条件还是存在的,但值变成了null,这样查不到数据,
正确的应该是当获取的值为空时,where条件就应该不存在了,就是搜索全部的信息了,
请问这个什么原因呢?


回复讨论(解决方案)

从不用 thinkphp,不过不止一次见到类似的问题,估计是他的一个 bug
如果没有能力修改他的代码,可以先预处理一下

$map['id'] = I('get.id');$map['cid'] = i('get.cid');$map = array_diff($map, array('')); //过滤掉空元素$m->where($map)->find();
Nach dem Login kopieren

 嗯,确实是一个BUG,我用循环把这个去掉了,但代码太多,用这个函数方便 多了

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage