1

当我尝试在我的模型中构建对我的数据库的查询时

class Application_Model_DbTable_Resume extends Zend_Db_Table_Abstract
{

protected $_name = 'users';

public function getFiveLastResume (){

   $select= $db->select()->from('users')->order("id DESC")->limit(5);
   $stmt = $db->query($select);
   $row = $stmt->fetchAll();       
   return $row;

   }
}

所以我有一个错误Notice: Undefined variable: db

如果我在查询之前写适配器

   $db = Zend_Db::factory('PDO_MYSQL',array(
'host'     => '127.0.0.1',
    'username' => 'root',
    'password' => '',
    'dbname'   => 'sport'       
));

多数民众赞成在工作好。为什么我的适配器不工作?

我的 application.ini 包含正确的数据库配置,因为更简单的查询在不包括适配器的情况下效果很好。我是zend的菜鸟,谢谢

4

1 回答 1

0

$db在本地范围内未定义,这就是您收到错误的原因。

由于您在DbTable对象内部,因此可以使用$this来获取 DB 适配器:

public function getFiveLastResume () {
    $select = $this->select()->from('users')->order("id DESC")->limit(5);
    $stmt   = $select->query();
    $row    = $stmt->fetchAll();       
    return $row;
}

在您的应用程序的任何其他地方,您应该能够使用以下方法获取对默认数据库适配器的引用:

$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()->from('table')...;

这当然假设您已经创建了一个Zend_Db_Table对象并将其设置为默认适配器。

于 2012-07-26T22:16:33.867 回答