首页 > 解决方案 > 如何在MVC编程模型中获取mysql DB数据

问题描述

在我的项目中,我选择了 MVC 编程模式。

首先,我定义了一个特定的 Trade 类,用于从 DB 获取数据;Trade.php 类的代码是:

namespace model;

class Trade Extends \Mysql\Crud {
private $ltb;

public function getLastTradeTime($uid, $ip) {
   //$params = array('uid' => '36998020','ip' => $ip);
   $sql = "SELECT sys_dateline FROM ms_trade WHERE uid=36998020 AND sys_ip='183.62.232.198' ORDER BY id DESC LIMIT 1;";
   $this->ltb = $this->getDb()->query($sql);
   return $this->ltb;// There is only one return value:1528957574
}

}

Trade.php 类扩展了 \Mysql\Crud 类。

Crud.php 类用于连接 DA,以及创建、更新、删除 sql 等。

并且我专门测试了 Crud.php 类的每个函数都成功了。

Crud.php 类的代码是:

<?php
namespace Mysql;
class Crud {

private $db;
protected $fields;
public $variables;

public function __construct($data = array()) {
    if ($this->fields && $data) {
        foreach ($data as $k => $d) {
            if (!in_array($k, $this->fields)) {
                unset($data[$k]);
            }
        }
    }
    $this->variables  = $data;
}

public function setDb($db) {
    $this->db = $db;
}
public function getDb() {
    //connecting function
}

public function __set($name,$value){
    //set value
}

public function __get($name)
{   
    //get value
}

public function save($id = "0") {
    //for saving value
}

public function create() { 
    //for create sql
}

public function delete($id = "") {
    //for delete sql
}
}

现在我有 1.php 控制页面,用于通过 Trade.php 类获取数据,

$uid = $login_userinfo['uid'];
$ip = getClientIp();
$trade_model = new \model\Trade();
$lastTrade_time = $trade_model->getLastTradeTime($uid, $ip); //the value should be 1528957574

但是 lastTrade 的值是“数组”;似乎没什么不对。谁能帮我一个忙。

标签: phpmysql

解决方案


它作为一个多维数组返回给您,其中一个元素包含一个关联数组和一个元素。

$lastTrade_time[0]['sys_dateline']应该给你你的时间戳。然后通过 etc 转换为任何格式date()或以您想要的任何方式使用。


推荐阅读