zend框架:模型无法与服务器上的数据库交互

时间:2010-02-24 07:11:21

标签: database zend-framework

我刚刚完成了第一个使用zend框架构建的网站,并且在本地计算机上运行良好。

然后我将它上传到服务器(godaddy)并且除了我的模型与数据库之间的任何连接之外所有工作。我已经使用常规PDO与我的application.ini中的凭据建立了数据库的连接,并且它工作正常,如果它没有从数据库返回任何内容,我可以与模型进行交互(并且所有模型在本地计算机上都能很好地工作) )。

我的模特看起来像这样:

class Default_Model_picture extends Zend_Db_Table_Abstract 
{

    protected $_name = 'pictures';

    protected $_primary = 'id';

    public function getPicturesByCategory($category)
    {

        $query = $this->select()->from(array('pictures'), array(
           'pictures.id', 'pictures.pic_name', 'pictures.pic_desc', 
           'pictures.pic_category', 'pictures.pic_date_added', 
           'pictures.pic_larger', 'pictures.pic_url'));

        $query->where('pic_category = ?', $category);
        $query->order('pic_date_added ASC');
        $result = $this->fetchAll($query);

        return $result;    
    }    
}

这是一个模型的例子,显然我没有添加很多方法。

我不知道下一步该做什么。

2 个答案:

答案 0 :(得分:0)

我假设您正确地将数据库连接设置为$ db。之后,您必须将其设置为Zend_Db_Table的默认适配器。

Zend_Db_Table::setDefaultAdapter($db);

我只是假设这是出了什么问题。但这是一个常见的问题,所以无论如何我决定继续回答。

答案 1 :(得分:0)

由于您的脚本在本地计算机上运行正常,我首先检查的是您是否在application.ini中正确设置了数据库连接参数

尝试编写一个在自身上使用pdo函数的测试脚本(没有zend框架)。看看你是否有任何错误

try {
    $dbh = new PDO('mysql:host=YOURHOST;dbname=YOURDBNAME', $YOURUSERNAME, $YOURPASSWORD);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}