从 Magento2 数据库 select 数据的正确方法
Proper way to select data from Magento2 Databases
我创建了一个 PHP 函数来显示数据库中的数据,
我正在尝试将其包含在我的 megento2 块函数中,
这是我的 Select 数据
的代码
$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";
}
我可以继续使用这种方式从数据库中获取数据,还是可以使用其他任何方式使用数据库中的数据?
您可以使用以下代码从数据库中获取数据
$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)){
}
谢谢
//试试下面的代码。
$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);
Magento2 有一种 object-oriented 方法来利用数据库中的数据
.
该模型和 collections
步骤 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 创建 Collection
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 然后我们可以简单地在我们的块文件中使用这个 collection
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;
}
}
我创建了一个 PHP 函数来显示数据库中的数据,
我正在尝试将其包含在我的 megento2 块函数中,
这是我的 Select 数据
的代码$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";
}
我可以继续使用这种方式从数据库中获取数据,还是可以使用其他任何方式使用数据库中的数据?
您可以使用以下代码从数据库中获取数据
$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)){
}
谢谢
//试试下面的代码。
$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);
Magento2 有一种 object-oriented 方法来利用数据库中的数据 . 该模型和 collections
步骤 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 创建 Collection
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 然后我们可以简单地在我们的块文件中使用这个 collection
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;
}
}