>[info]之前的課程講到,使用MVC架構的程序,在與數據庫做交互時,都會把操作封裝在模型中,而在iWebShop當中,讀取操作用 IQuery 類,寫入操作用 IModel 類。除非使用自定義的類,IQuery和IModel的操作沒有獨立成一個文件,在控制器中就可以找到相應的操作代碼,本課程就講一講這兩個類如何使用。
## 一、IQuery 類
IQuery類的定義位于lib\core\query_class中,結構如下:

一般使用比較多的就__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)執行查詢,得到結果。
有關屬性的說明,官方給出了以下說明:
?
## 二、IModel 類
IModel類的定義位于lib\core\query_class中,結構如下:

代碼量不大,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的操作同樣是創建對象,設置數據,執行操作這樣的步驟。
有關屬性的說明,官方給出了以下說明:


以上為IQuery類和IModel類的用法,具體的實踐我們會在后續的課程中舉例說明。
>[warning]如有不明白的地方,留言或是加入我們?“三眾技術QQ交流群”一起討論
## 關于我們
>[danger][三眾科技](http://www.sunzoon.com)資訊平臺——大道至簡,悅你所閱!
>本教程由[三眾簡悅](http://it.sunzoon.com)原創,轉載請注明出處,作者:bobball,由bobo整理成看云書籍
三眾技術交流群:**543102562**
歡迎大家加入我們,共同討論IT,互聯網技術。同時可以掃描下面的二維碼關注我們,謝謝!
