当前位置: 首页 > 后端技术 > PHP

Magento2RAWSQL用法

时间:2023-03-29 22:45:42 PHP

在Magento中,已经有非常好用的ORM工具,内置的Collection也提供了方便的查询方法,但有时还是会出现需要自己编写RAWSQLQuery的情况。可以做什么?集合方法通常可以在vendor/extension/model/ResourceModel/{entity_name}/中找到对应的集合,集合的用法如下,这里不再介绍。代码:addFieldToFilter('entity_id',1)->getFirstItem();连接方式除了Collection之外,我们还可以使用Connection进行配对操作数据库,首先通过以下程序创建连接。Createconnection_objectManager->get('Magento\Framework\App\ResourceConnection')->getConnection();select语句//语句://selectcolumn_nameasalias_namefromtable_namewhereentity_id='1';$select=$conn->select()->from('table_name',['column_name'=>'alias_name')])->where('entity_id=?','1');插入语句$conn->insert('table_name',['column_name_1'=>'value','column_name_2'=>'value',]);更新语句$conn->update('table_name',['field_one'=>'value1','field_two'=>'value2'],$conn->quoteInto('store_idIN(?)','value1'));删除语句delete('table_name',['entity_idIN(?)'=>$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读取结论即可。不管是Collection还是Connection,都是操作数据库的方式。没有绝对的好与坏,只有适合与不适合。Collection是一个封装好的ORM,使用起来相当方便,但是对于复杂的join语句,使用访问起来比较不方便,还是需要依赖Connection来帮忙今天的介绍,希望大家喜欢。