magento1 数据库操作

magento1 数据库操作


摘要:直接操作数据库和常用的自带操作数据库。

1. 直接操作数据库:

$resource = Mage::getSingleton("core/resource");

$read = $resource->getConnection('core_read');
$table_sales_flat_quote = $resource->getTableName('sales_flat_quote');

// 查询
$sql = $read->select()->from(['main_table' => $table_sales_flat_quote])->where('main_table.entity_id=?', $lastQuoteId)->limit(1);
$result1 = $read->fetchAll($sql);
if (!$result1) {
    $this->_redirect('checkout/cart');
    return;
}
// var_dump($result1);
$lastResaleTaxNumber = $result1[0]['resale_tax_number'];

if ($lastResaleTaxNumber != null) {

    $write = $resource->getConnection('core_write');
    $table_sales_flat_order = $resource->getTableName('sales_flat_order');

    // 更新 update(表名, 更新的数据, 更新的条件)
    $result2 = $write->update($table_sales_flat_order, ['resale_tax_number' => $lastResaleTaxNumber], ['entity_id=?' => $lastOrderId]);
    if (!$result2) {
        $this->_redirect('checkout/cart');
        return;
    }

    // 插入
    $result3 = $write->insert($table_sales_flat_order, ['resale_tax_number' => '12345678901']);

    // 删除
    $result4 = $write->delete($table_sales_flat_order, ['resale_tax_number' => '12345678901']);

}


2. 常用的自带操作数据库:

  • 判断用户是否登录,获取登录用户信息

    $customerSession = Mage::getSingleton('customer/session');
    if ($customerSession->isLoggedIn()) {
        $customer = $customerSession->getCustomer();
    
        $customerId = $customer->getId();
        // $customerId = $customer->getData('entity_id');
        $customerGroupId = $customer->getGroupId();
        // $customerGroupId = $customer->getData('group_id');
    
        // ...
    
        // 通过 getData 查看所有信息
        $customerData = $customer->getData();
        var_dump($customerData);
    
        // 设置新的用户信息
        $customer->setData('group_id', 2);
        $customer->save();
    
    }
    
  • 获取产品信息

    // 通过 id 获取产品
    $_product = Mage::getModel("catalog/product")->load($_productId);
    // 通过 sku 获取产品
    $_product = Mage::getModel("catalog/product")->loadByAttribute("sku", $_sku);
    
    // 获取产品信息
    $productShortDescription = $_product->getShortDescription();
    $productDescription = $_product->getDescription();
    $productName = $_product->getName();
    $productPrice = $_product->getPrice();
    $productSpecialPrice = $_product->getSpecialPrice();
    $productProductUrl = $_product->getProductUrl();
    $productImageUrl = $_product->getImageUrl();
    $productSmallImageUrl = $_product->getSmallImageUrl();
    $productThumbnailUrl = $_product->getThumbnailUrl();
    
    // 查看产品所有信息
    $productData = $_product->getData();
    var_dump($productData);
    
    // 链式查询产品
    $code = '12321';
    $_products = Mage::getModel('catalog/product')->getCollection()
                    ->addAttributeToSelect('*')
                    ->addAttributeToFilter('sku', ['like' => $code])
                    ->load();
    $entity_id = $_products->getData()[0]['entity_id'];
    

    备注:可通过数组遍历等方式获得产品信息并进行相应的处理。

  • 其他查询

    // Checkout/controllers/OnepageController successAction()
    
    // table: sales_flat_quote
    $resaleTaxNumber = Mage::getSingleton('sales/quote')->load($lastQuoteId)->getData('resale_tax_number');
    
    if ($resaleTaxNumber != null) {
    
        // table: sales_flat_order
        $orderQuote =  Mage::getSingleton('sales/order');
    
        $lastOrder = $orderQuote->load($lastOrderId);
        $lastOrder->setData('resale_tax_number', $resaleTaxNumber);
        $lastOrder->save();
    }
    



- 欢迎各大神点评 -




猜你喜欢

转载自blog.csdn.net/hqt_29/article/details/80887988