0

我创建了一个 PHP 函数来显示数据库中的数据,
并且我正在尝试将它包含在我的 megento2 块函数中,

这是我的选择数据代码

$dates = date("Y-m-d");
$phone = $_POST["phone"];

 $sql = "SELECT * FROM otpp WHERE phone = '$phone' AND dates = '$dates'";

    $result = mysqli_query($conn, $sql);
    $count = mysqli_num_rows($result);
    // if exists ?
    if ($count > 0) {

        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            $otppass = $row["otp"];
            echo $otppass;
        } else {
            echo "0 results";
   }

我可以继续以这种方式从数据库中获取数据或以任何其他方式使用数据库中的数据吗?

4

3 回答 3

8

Magento2 有一种面向对象的方式来利用来自 Database 的数据。那个模型和集合

步骤 1 创建模型

<?php
namespace <CompanyName>\<ModuleName>\Model;

use Magento\Framework\Model\AbstractModel;

    class Data extends AbstractModel
    {   
        protected function _construct()
        {
            $this->_init('<CompanyName>\<ModuleName>\Model\ResourceModel\Data');
        }
    }

步骤 2创建资源模型

<?php

namespace <CompanyName>\<ModuleName>\Model\ResourceModel;


use \Magento\Framework\Model\ResourceModel\Db\AbstractDb;

class Data extends AbstractDb
{
    protected function _construct()
    {
        $this->_init('TableName', 'id'); //id is a primary key 
    }
}

步骤 3创建集合

namespace <CompanyName>\<ModuleName>\Model\ResourceModel\Data;


use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;


class Collection extends AbstractCollection
{
    protected function _construct()
    {
        $this->_init(
        '<CompanyName>\<ModuleName>\Model\Data',
        '<CompanyName>\<ModuleName>\Model\ResourceModel\Data'
    );
    }
}

第 4 步然后我们可以简单地在我们的块文件中使用这个集合

namespace <CompanyName>\<ModuleName>\Block;


use Magento\Framework\View\Element\Template\Context;
use <CompanyName>\<ModuleName>\Model\Data;
use Magento\Framework\View\Element\Template;


class Hello extends Template
{

    public function __construct(Context $context, Data $model)
    {
                $this->model = $model;
        parent::__construct($context);

    }


    public function getDatas()
    {
        $Datas = $this->model->getCollection();
        return $Datas;
    }

}

于 2018-04-17T07:58:59.750 回答
0

您可以使用以下代码从数据库中获取数据

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework \App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('yourtablename');
$dates = date("Y-m-d");
$phone = $_POST["phone"];
$sql = "SELECT * FROM otpp WHERE phone = '$phone' AND dates = '$dates'";
$result = $connection->fetchAll($sql); 
echo '<pre>'; print_r($result); echo '</pre>';

您可以使用为空数组添加条件

if(!empty($result)){

}

谢谢

于 2017-10-24T09:10:30.117 回答
0

//试试下面的代码。

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();

//Select Data from table
$dates = date("Y-m-d");
$phone = $_POST["phone"];
$sql = "SELECT * FROM otpp WHERE phone = '$phone' AND dates = '$dates';
//echo $sql; //uncomment this line and check sql query.
$result = $connection->fetchAll($sql);

更多详情点我

于 2017-10-24T09:13:25.270 回答