>[info]之前的课程讲到,使用MVC架构的程序,在与数据库做交互时,都会把操作封装在模型中,而在iWebShop当中,读取操作用 IQuery 类,写入操作用 IModel 类。除非使用自定义的类,IQuery和IModel的操作没有独立成一个文件,在控制器中就可以找到相应的操作代码,本课程就讲一讲这两个类如何使用。 ## 一、IQuery 类 IQuery类的定义位于lib\core\query_class中,结构如下: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722151456.png) 一般使用比较多的就__set中的各个属性和find方法,对实现原理有兴趣的可以看看这个文件,代码不长 IQuery类使用 以下通过官方的例子来说明 比如我们要查询商品表(goods)里面的 id=10 的商品,则 ~~~ $goodsDB = new IQuery('goods'); //goods是表名,这里不需要加前缀 $goodsDB->where = "id = 10"; //where属性相当于sql中的where条件 $goodsData = $goodsDB->find(); //find方法就是执行查询,返回的是一个数组 ~~~ 从上面的例子可以看出来,IQuery的使用分三步 (1)创建IQuery对象,表名作为参数。 (2)设置对象的属性。 (3)执行查询,得到结果。 有关属性的说明,官方给出了以下说明: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722153508.png) ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722153535.png) ## 二、IModel 类 IModel类的定义位于lib\core\query_class中,结构如下: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722170629.png) 代码量不大,setData,update,add,del,qurey为常用方法。 以下通过官方的例子来说明 比如要更新 goods 表中id=2的 price 字段,那么就是 ~~~ $goodsDB = new IModel(‘goods’);//创建model对象,goods是表名 $goodsDB->setData(array(‘price’ => 1000));//设置表元素,是个二维数组 $goodsDB->update(‘id = 2’); //执行更新动作,此时会把数组的数据更新到数据库中 ~~~ 从上面的例子可以看出,IModel的操作同样是创建对象,设置数据,执行操作这样的步骤。 有关属性的说明,官方给出了以下说明: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722153614.png) ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160722153652.png) 以上为IQuery类和IModel类的用法,具体的实践我们会在后续的课程中举例说明。 >[warning]如有不明白的地方,留言或是加入我们 “三众技术QQ交流群”一起讨论 ## 关于我们 >[danger][三众科技](http://www.sunzoon.com)资讯平台——大道至简,悦你所阅! >本教程由[三众简悦](http://it.sunzoon.com)原创,转载请注明出处,作者:bobball,由bobo整理成看云书籍 三众技术交流群:**543102562** 欢迎大家加入我们,共同讨论IT,互联网技术。同时可以扫描下面的二维码关注我们,谢谢! ![三众科技服务号](http://it.sunzoon.com/wp-content/uploads/2016/06/qrcode_for_gh_401d25b05314_344.jpg)