【转】Magento2 数据库操作
直接操作數據庫
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('employee');
Select Data from table
$sql = "Select * FROM " . $tableName;
$result = $connection->fetchRow($sql); //get one info,返回二維數組
$result = $connection->fetchAll($sql); ? //get all info
Delete Data from table
$sql = "Delete FROM " . $tableName." Where emp_id = 10";
$connection->query($sql);
Insert Data into table
$sql = "Insert Into " . $tableName . " (emp_id, emp_name, emp_code, emp_salary) Values ('','XYZ','ABD20','50000')";
$connection->query($sql);
Update Data into table
$sql = "Update " . $tableName . "Set emp_salary = 20000 where emp_id = 12";
$connection->query($sql);
?
addFieldToFilter
protected??$_productCollectionFactory?;
public??function?__construct?(
? ? ? ? \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory??$productFactory
? ???)??{
? ? ? ???$this?->_productCollectionFactory??=??$productFactory?;
? ???}
? ???public??function?getProductCollection?(?)
? ???{
? ? ???return????$this?->_productCollectionFactory?->?create?(?)?->?addAttributeToSelect?(?'*'?)?->?addFieldToFilter?(?'sku’,'test?');
? ? ?
? ? ?}
Equal: eq
Now we use equal to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'status'?,??array?(?'eq'??=>??1?)?)?;??// Using the operator
$this?->_productCollectionFactory?->?addFieldToFilter?(?'status'?,??1?)?;??// Without using the operator
Not Equals – neq
Now we use not equal to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'sku'?,??array?(?'neq'??=>??'test-product'?)?)?;
Like – like
Now we use Like to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'sku'?,??array?(?'like'??=>??'UX%'?)?)?;
Not Like – nlike
Now we use not like to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'sku'?,??array?(?'nlike'??=>??'err-prod%'?)?)?;
In – in
Now we use In to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'in'??=>??array?(?1?,?4?,?98?)?)?)?;
Not In – nin
Now we use not In to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'nin'??=>??array?(?1?,?4?,?98?)?)?)?;
NULL – null
Now we use null to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'description'?,??array?(?'null'??=>??true?)?)?;
Not NULL – notnull
Now we use not null to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'description'?,??array?(?'notnull'??=>??true?)?)?;
Greater Than – gt
Now we use greater than to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'gt'??=>??5?)?)?;
Less Than – lt
Now we use less than to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'lt'??=>??5?)?)?;
Greater Than or Equals To- gteq
Now we use greater than to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'gteq'??=>??5?)?)?;
Less Than or Equals To – lteq
Now we use less than equal to filter production collection.
$this?->_productCollectionFactory?->?addFieldToFilter?(?'entity_id'?,??array?(?'lteq'??=>??5?)?)?;
?
打印SQL語句
$collection = $this->_order->getCollection()->addFieldToFilter('created_at',array('like' => '2018-10%'));
echo?$collection->getSelect()->__toString(); //打印sql語句
打印getCollection結果數量
$collection = $this->_order->getCollection()->addFieldToFilter('created_at',array('like' => '2018-10%'));
echo?$collection->count(); //打印sql語句
https://my.oschina.net/ganfanghua/blog/3029100
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【转】Magento2 数据库操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《侏罗纪世界3》上映:顶流沧龙出场太少被
- 下一篇: 第三家民营航空来了!京东航空递交合格审定