Zend framework Zend Framework-在非对象上选择() 编辑11月23日:解决方案已建立。。。我在构造函数中写了$\u db而不是$this->\u db!真是个笨蛋!

Zend framework Zend Framework-在非对象上选择() 编辑11月23日:解决方案已建立。。。我在构造函数中写了$\u db而不是$this->\u db!真是个笨蛋!,zend-framework,zend-db-table,Zend Framework,Zend Db Table,我尝试在我的ZF应用程序中创建一个新模型。 我得到一个错误: 致命错误:在第86行的[…]/models/TrackingPageMapper.php中对非对象调用成员函数select() 我是ZF的新用户,我想我什么都忘了 这是我的班级代码: /** * TrackingPageMapper * @author Raphaël Deschler - developpeur@la-ligne-web.com * @version 0.1 */ class Default_Model_T

我尝试在我的ZF应用程序中创建一个新模型。 我得到一个错误:

致命错误:在第86行的[…]/models/TrackingPageMapper.php中对非对象调用成员函数select()

我是ZF的新用户,我想我什么都忘了

这是我的班级代码:

/**
 * TrackingPageMapper
 * @author Raphaël Deschler - developpeur@la-ligne-web.com
 * @version 0.1
 */

class Default_Model_TrackingPageMapper
{
    private $_db;

/**
 * __construct
 */
public function __construct() 
{
    $_db = Zend_Db_Table::getDefaultAdapter();
}

#-----[Public Section]

/**
 * addView()
 * @param EtId, etablissement id
 * 
 * Check :
 * 1) If this is the first click of the day for this IP on this page
 * 2) If this is the first click of the month for this IP
 * 3) Save or not
 * 
 * @return void
 * 
 */
public function addView($EtId)
{
    $today = getDate();
    $ip = $this->getRealIp();
    
    //Check If is the IP exists
    $this->ipExists($ip, $EtId);
    
    //print_r($today);
    
    
    
    
}

#-----[Private Section]

/**
 * getRealIp()
 * @return varchar(15)
 * 
 */
private function getRealIp()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
      $ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip = $_SERVER['REMOTE_ADDR'];
    }
    
    return $ip;
}

/**
 * ipExists()
 * @param Ip address
 * @param EtId, etablissement id
 * 
 * @return false if ip !exists
 * @return array of ip infos if exists
 * 
 */
public function ipExists($Ip, $EtId = null)
{
    $myQuery = $this->_db->select()
                         ->from('tracking_ip', 'idtracking_ip')
                         ->where('ip = ?',$Ip);
    
    $result = $this->_db->fetchAll($myQuery);
    
    print_r($result);
}
}
我这样称呼这个模型:

$oTrack = new Default_Model_TrackingPageMapper;
$oTrack->addView($Id);
有人能帮我吗

谢谢你对康明的支持

编辑
var\u dump($\u db)


找到解决方案。。。我在构造函数中编写了
$\u db
而不是
$this->\u db
,我不明白为什么构造函数不应该是公共的。这并不能解决问题。无论如何,谢谢你做一个var\u转储($this->\u db);在您使用之前,请选择并查看您得到了什么。已经执行了_db工作。我编辑我的答案,写下你解决的问题。无论如何,将您的编辑作为答案并接受它;)
object(Zend_Db_Adapter_Pdo_Mysql)#76 (12) {
  ["_pdoType":protected]=>
  string(5) "mysql"
  ["_numericDataTypes":protected]=>
  array(16) {
    [0]=>
    int(0)
    [1]=>
    int(1)
    [2]=>
    int(2)
    ["INT"]=>
    int(0)
    ["INTEGER"]=>
    int(0)
    ["MEDIUMINT"]=>
    int(0)
    ["SMALLINT"]=>
    int(0)
    ["TINYINT"]=>
    int(0)
    ["BIGINT"]=>
    int(1)
    ["SERIAL"]=>
    int(1)
    ["DEC"]=>
    int(2)
    ["DECIMAL"]=>
    int(2)
    ["DOUBLE"]=>
    int(2)
    ["DOUBLE PRECISION"]=>
    int(2)
    ["FIXED"]=>
    int(2)
    ["FLOAT"]=>
    int(2)
  }
  ["_defaultStmtClass":protected]=>
  string(21) "Zend_Db_Statement_Pdo"
  ["_config":protected]=>
  array(7) {
    ["username"]=>
    string(4) "riad"
    ["password"]=>
    string(7) "xxxxxx"
    ["dbname"]=>
    string(8) "riad_dev"
    ["charset"]=>
    string(4) "utf8"
    ["driver_options"]=>
    array(1) {
      [1002]=>
      string(14) "SET NAMES utf8"
    }
    ["persistent"]=>
    bool(false)
    ["options"]=>
    array(3) {
      ["caseFolding"]=>
      int(0)
      ["autoQuoteIdentifiers"]=>
      bool(true)
      ["fetchMode"]=>
      int(2)
    }
  }
  ["_fetchMode":protected]=>
  int(2)
  ["_profiler":protected]=>
  object(Zend_Db_Profiler)#74 (4) {
     ["_queryProfiles":protected]=>
     array(0) {
     }
    ["_enabled":protected]=>
    bool(false)
    ["_filterElapsedSecs":protected]=>
    NULL
    ["_filterTypes":protected]=>
    NULL
  }
  ["_defaultProfilerClass":protected]=>
  string(16) "Zend_Db_Profiler"
  ["_connection":protected]=>
  NULL
  ["_caseFolding":protected]=>
  int(0)
  ["_autoQuoteIdentifiers":protected]=>
  bool(true)
  ["_allowSerialization":protected]=>
  bool(true)
  ["_autoReconnectOnUnserialize":protected]=>
  bool(false)
   }