成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Magento 2 RAW SQL 用法

劉玉平 / 2492人閱讀

摘要:裡面,其實已經(jīng)有非常好用的工具,內(nèi)建也有提供方便的方法來查詢,但是有時候可能還是會有需要自己寫的情境。那可以怎麼做呢方法通常可以在這邊找到對應(yīng)的,而的使用方法如下,這邊我們就不多作介紹。

Magento 裡面,其實已經(jīng)有非常好用的 ORM 工具,內(nèi)建也有 Collection 提供方便的方法來查詢,但是有時候可能還是會有需要自己寫 RAW SQL Query 的情境。那可以怎麼做呢?

Collection 方法

通常可以在 vendor/extension/model/ResourceModel/{entity_name}/ 這邊找到對應(yīng)的 collection ,而 collection 的使用方法如下,這邊我們就不多作介紹。

程式碼:
  addFieldToFilter("entity_id", 1)->getFirstItem();


Connection 方法

除了 Collection 之外,我們也可以使用 Connection 進(jìn)行對資料庫的操作,首先透過以下程式 createconnection 的連線。

建立 connection
  _objectManager->get("MagentoFrameworkAppResourceConnection")->getConnection();

?

select 語句
  // 語句:
  // select column_name as alias_name from table_name where entity_id = "1";
  $select = $conn->select()
              ->from("table_name",
                     [
                         "column_name" => "alias_name" ) 
                     ]
                    )
              ->where( "entity_id = ?", "1" );

?

Insert 語句
  $conn->insert(
              "table_name",
              [
                  "column_name_1" => "value",
                  "column_name_2" => "value",
              ]
          );

?

Update 語句
  $conn->update(
      "table_name",
      [
          "field_one" => "value1",
          "field_two" => "value2" 
      ],
      $conn->quoteInto( "store_id IN (?)", "value1" )
  );

?

Delete 語句
  delete(
      "table_name",
      [
          "entity_id IN (?)" => $idsArray
      ]
  );

?

InsertOnDuplicate 語句
  insertOnDuplicate(
                  "table_name",
                  [
                      "attribute_id" => $attribute_id,
                      "entity_id" => $productId,
                      "value" => $value,
                      "store_id" => 0,
                  ],
                  [
                      "value"
                  ]
              );
取得資料
  // 可以使用 fetch 方法
  $result = $conn->fetchAll( $select );

  $result = $conn->fetchOne( $select );

  $result = $conn->fetchOne( $select );

  $result = $conn->fetchAssoc( $select );

  $result = $conn->fetchCol( $select );

  $result = $conn->fetchPairs( $select );

  $result = $conn->fetchRow( $select );

這邊就端看使用者的需求來決定要 fetch 的種類,會回傳一個 Array 型別的資料,再用 foreach 去讀取即可


結(jié)論

不管是 Collection 也好,或是 Connection 也好,都是操作資料庫的方法,沒有絕對的好壞,只有適合不適合,Collection 是封裝好的 ORM ,用起來頗為方便,但是如果是複雜的 join 語句,使用上就較為不便,還是需要靠 Connection 來幫忙。今天的介紹希望大家會喜歡。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28545.html

相關(guān)文章

  • 一個簡單的Magento1.9模塊示例

    摘要:本次要做的就是,撰寫一個模塊,讓該模塊跑完整個的流程。創(chuàng)建模型,需要啟用模型,啟用資源模型,在資源模型中添加實體,再為資源模型設(shè)置讀寫適配器。 很多時候,不知道Magento模塊到底該怎么寫,比如ThinkPHP,YII框架,它是直接將控制器Controller中的所取得相關(guān)數(shù)據(jù)直接傳遞到視圖層View,而Magento雖然也是MVC三層,但是在中間多了布局對象Layout與區(qū)塊Blo...

    Pikachu 評論0 收藏0
  • Magento復(fù)寫插件AW_Blog練習(xí)

    摘要:到此就完成了。 功能介紹:安裝好Magento插件后,需要把AW_Blog的前端顯示方式要改變,變成類似選項卡的展示效果,先看下設(shè)計大體效果如下圖:showImg(https://segmentfault.com/img/bVtIVr);那么,改如何修改插件呢?還是和往常一樣,新建一個模塊,包含Block、controllers、etc、sql、Model文件夾showImg(http...

    ad6623 評論0 收藏0
  • PhpBoot 入門(二) 面向?qū)ο蟮姆绞骄帉?SQL

    摘要:是一款為快速開發(fā)而設(shè)計的框架加星請點這里。對進(jìn)行了封裝,使開發(fā)者可以更方便的編寫正確和安全的。下面將繼續(xù)上一篇快速開發(fā)接口的示例,介紹的使用。配置可以通過依賴注入的方式,對數(shù)據(jù)庫進(jìn)行配置。 showImg(https://segmentfault.com/img/remote/1460000010831389); PhpBoot 是一款為快速開發(fā) RESTful API 而設(shè)計的PHP...

    whinc 評論0 收藏0
  • magento1給customer添加自定義屬性

    摘要:在模塊的文件中將以上屬性存入數(shù)據(jù)庫,并且添加到頁面表單中添加下拉框的屬性,添加性別和 在模塊的sql文件中:

    HollisChuang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<