欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

iwebshop框架用到的幾種常用sql處理

query 查詢類標簽(用于前端遍歷)

創(chuàng)新互聯(lián)網絡公司擁有10年的成都網站開發(fā)建設經驗,近千家客戶的共同信賴。提供成都網站設計、網站建設、外貿網站建設、網站開發(fā)、網站定制、買友情鏈接、建網站、網站搭建、響應式網站建設、網頁設計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務

實例:

{query:name=goods}
{$item['name']}<br/>
{/query}

本人實際開發(fā)中書寫代碼應用

<php  // 下面代碼是放在html頁面的
{query:name=user fields=username where=id eq $user_id}
      {$item['username']}
      {/query}的購物清單</td>
 ?>

分頁:

{set:$page=IReq::get('page')==null?1:IReq::get('page');}//定義分頁變量
{query:name=goods page=$page pagesize=5}
{$key}:{$item['name']}<br/>
{/query}
{$query->getPageBar()} //調用分頁方法

數(shù)據(jù)庫讀取和寫入:

IQuery類:

IQuery 提供了很豐富的屬性和功能,通過簡單的屬性配置,就可以實現(xiàn)很多的SQL 查詢功能,比如我們要查詢商
品表(goods)里面的id=10 的商品,則:
$goodsDB = new IQuery(‘goods’);
$goodsDB->where = “id = 10”;
$goodsData = $goodsDB->find();
. find()就是執(zhí)行查詢最終數(shù)據(jù)的一個接口。

創(chuàng)建好IQuery 對象以后,就可以設置各種類屬性來組合查詢數(shù)據(jù)了。
主要屬性列表如下:
屬性名稱數(shù)據(jù)類型說明
fields String 可選默認* 讀取表的字段數(shù)據(jù)
where String 可選默認無查詢條件
join String 可選默認無表連接操作,比如:
$db = new IQuery(‘goods as g’);
$db->join=”left join products as p on g.id = p.goods_id”;
$db->find();
group String 可選默認無表分組操作,比如:
$db = new IQuery(‘goods as g’);
$db->group = “price”;
$db->find();
having String 可選默認無表分組結果的篩選,設置group 屬性才有意義
order String 可選默認無表排序字段
limit Int 可選默認20 條讀取指定數(shù)量的條數(shù)
page Int 可選默認無設置分頁。設置后IQuery 類庫增加paging 屬性(分頁類)
pagesize Int 可選默認20 條每個分頁顯示的數(shù)據(jù)量,設置page 屬性才有意義
pagelength Int 可選默認10 頁顯示多少頁數(shù),設置page 屬性才有意義
cache String 可選memcache, 緩存查詢結果提高效率,降低數(shù)據(jù)庫壓力。填寫緩存的模式,前提是您的系統(tǒng)必須支持iWebShop 緩存技術

debug Int 可選默認0 關閉;1 開啟調試SQL 語句,系統(tǒng)會自動輸出完整的SQL 原生態(tài)語句

本人實際開發(fā)中書寫代碼應用

查詢:

function give_goods_list(){
   $giveaway_Obj = new IQuery('giveaway');
   $giveaway_Obj -> where = "is_del = 0";
   $giveaway_infos = $giveaway_Obj -> find();
   $this->data = $giveaway_infos;
   $this->redirect('give_goods_list');
}

IModel類:

數(shù)據(jù)庫寫入一般用IModel 類,目前支持update(更新),add(添加),del(刪除),dropTable(卸載
表),createTable(創(chuàng)建表)。
一般使用都是通過創(chuàng)建new IModel(表名)對象來創(chuàng)建的數(shù)據(jù)庫實例,然后調用setData()接口進行數(shù)據(jù)設
置。
比如要更新goods 表的price 字段,那么就是:
$goodsDB = new IModel(‘goods’);
$goodsDB->setData(array(‘price’ => 1000));
$goodsDB->update(‘id = 2’);

方法名字數(shù)據(jù)類型說明
update($where,
$except=array()
)
$where:string 更新條件
$except:array 特殊表達式
字段(非字符串類型)
更新記錄
通過$this->setData($array); $array(字段=>更新數(shù)據(jù))
表更新字段對應數(shù)據(jù)關系
add() 添加記錄
通過$this->setData($array); $array(字段=>添加數(shù)據(jù))
表添加記錄對應數(shù)據(jù)關系
del($where) $where:string 刪除條件刪除記錄
把滿足$where 條件的記錄都刪除

dropTable() 卸載表
把當前IModel 實例對應的表刪除
createTable() 創(chuàng)建表
創(chuàng)建當前IModel 實例對應的表
通過$this->setData($array); 設置創(chuàng)建表元素(多維數(shù)組)
$array = array(
"column" => 字段配置array("type" => 數(shù)據(jù)類型,"default"
=> 默認值,"comment" => 字段注釋,"auto_increment" =>
數(shù)值自增長)
"comment"=> 表注釋
"index" => 表索引array("索引類
型:PRIMARY,KEY,UNIQUE" => "字段名稱")

本人實際開發(fā)中書寫代碼應用

添加:

function supplier_edit_add()
{
   $id = IFilter::act(IReq::get('id'),'int');
   $company   = IFilter::act(IReq::get('firm_name'));
   $address = IFilter::act(IReq::get('address'));
   $pname  = IFilter::act(IReq::get('name'));
   $mobile = IFilter::act(IReq::get('mobile'));
   $phone  = IFilter::act(IReq::get('telephone'));
   $img = IFilter::act(IReq::get('img'));
   $account  = IFilter::act(IReq::get('account_num'));
       $bank   = IFilter::act(IReq::get('bank_name'));
   $province = IFilter::act(IReq::get('province'),'int');
   $city    = IFilter::act(IReq::get('city'),'int');
   $area     = IFilter::act(IReq::get('area'),'int');
   $_POST['area'] = "";
   if($province && $city && $area)
   {
      $_POST['area'] = array($province,$city,$area);
   }
   $user_id =$this->admin['admin_id'];
   $stock  = new IModel('supplier_list');
   $stock_Init =  array(
      'firm_name'    =>   $company,
      'area'         =>   $_POST['area'] ? ",".join(",",$_POST['area'])."," : "",
       'address'      =>   $address,
      'name'         =>   $pname,
      'mobile'       =>   $mobile,
      'telephone'    =>   $phone,
      'img'          =>   $img,
      'account_num'  =>  $account,
      'bank_name'    =>  $bank,
       'create_time'  =>   date('Y-m-d H:i:s',time()),
       'admin_id'     =>   $user_id
   );
   if($id){
      $stock->setData($stock_Init);
      $stock->update('id = '.$id);
   }else{
      $stock->setData($stock_Init);
       $stock->add();
   }

   $this->redirect('supplier_list');
}
刪除:(注意:軟刪除,數(shù)據(jù)庫保留)
function supplier_list_del(){
   $id = IFilter::act(IReq::get('id'),'int');
   $stock = new IModel('supplier_list');
   $stock->setData(array('is_del'=>1));
   if($id)
   {
      $stock->update(Util::joinStr($id));
   }else{
      die('請選擇要刪除的數(shù)據(jù)');
   }
   $this->redirect("supplier_list");
}

更新:

function suppliet_list_restore(){
   $id = IFilter::act(IReq::get('id'),'int');
   //生成goods對象
   $stock = new IModel('supplier_list');
   $stock->setData(array('is_del'=>0));
   if($id)
   {
      $stock->update(Util::joinStr($id));
   }
   else
   {
      die('請選擇要恢復的數(shù)據(jù)');
   }

   $this->redirect("supplier_list");
}

原生態(tài)的SQL 可以用IDBFactory::getDB()->query($sql);此時可以直接寫原生態(tài)的SQL 語句,但是要注意
SQL 語句中把表前綴增加上,因為IDBFactory 不會對$sql 有任何的修改,直接100%原樣輸送給MySQL,當要執(zhí)
行一些特殊的,復雜的SQL 可以使用此方法。

本人實際開發(fā)中書寫代碼應用

$sql_class = "SELECT zce.category_id,gs.brand_id,zc.parent_id from (zqwy_goods as gs left join zqwy_category_extend as zce on gs.id = zce.goods_id) left join
                            zqwy_category as zc on zce.category_id = zc.id WHERE gs.id =".$v['goods_id'].";";
$goods_class = IDBFactory::getDB()->query($sql_class);

分享文章:iwebshop框架用到的幾種常用sql處理
瀏覽地址:http://chinadenli.net/article38/pipdpp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站設計、建站公司網站導航、電子商務、微信小程序網站維護

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)