尝试使用单例模式为多个查询建立多个数据库连接

时间:2013-12-16 15:05:45

标签: php

我正在尝试从一个类中进行多个查询。每个对象数组都返回到私有_Data var。

问题是,当我执行新查询时,_data var会被新数据覆盖。解决这种情况的最佳方法是什么?

    public function getDeliveryBy($orderid) {
//ORDER CLASS
    $data = $this->_db->query("SELECT deliveryby FROM order WHERE orderid = $orderid");
    //$data = $this->_db->get('rt_order', array('orderid', '=', $orderid));

    if ($data->count()) {
        $this->_data = $data->first();
        //this returns the orderline...

        $return = '';

        $return .= '<select id="status" class="form-control" name="status">';

        //if in orderline the user is 0 set not set
        if ($this->data()->deliveryby === "0") {
            $return .= '<option value="0" selected>Not set</option>';
        }

        // Now i want to get a list of all employees...

        // get all employees
        //$result = $this->_db->query("SELECT id,username FROM users");

        foreach () {
        //make... mutiple options
        }


        $return .= '</select>';

        return $return;

    }
    return false;

}

//// UPDATE 我做了什么

  1. 在类顺序构造函数中创建一个新实例(对于用户类)

    public function __construct() {
    $this->_db = DB::getInstance();
    $this->_employee = new User();
    

    }

  2. 在方法中添加

            //Get all employees
        $this->employee()->getAllUsers();
        foreach ($this->employee()->data() as $key=>$employee) {
            echo $employee->firstname, '<BR>';
        }
    
  3. 现在私有var数据仍保存订单数据......用户数据包含用户数据......

    事情是,我已经读过,从其他班级开出一个新班级并不行......这就是为什么我想知道这是否正常

1 个答案:

答案 0 :(得分:0)

我做了什么

  1. 在类顺序构造函数中创建一个新实例(对于用户类)

    public function __construct() {
    $this->_db = DB::getInstance();
    $this->_employee = new User();
    

    }

  2. 在方法中添加

            //Get all employees
        $this->employee()->getAllUsers();
        foreach ($this->employee()->data() as $key=>$employee) {
            echo $employee->firstname, '<BR>';
        }
    
  3. 现在私有var数据仍然保存订单数据......用户数据保存用户数据......

    事情是,我已经读过,从其他类开始实例一个新类是不行的...... s