2010-02-24 77 views
0

我剛剛完成了我的第一個使用zend框架構建的網站,並且在我的本地計算機上工作良好。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;  
    }  
} 

這是一個典範的例子,很顯然,我沒增加了很多的方法。

我不知道下一步該做什麼。

+0

你能告訴更多關於數據庫請。它位於哪裏?你可以針對這些問題運行哪些查詢? – Gordon 2010-02-24 07:41:29

+0

此外,如果尚未完成,請打開所有錯誤報告以確保您沒有抑制任何錯誤。 – Gordon 2010-02-24 08:22:31

+0

可能pdo沒有爲您的php安裝激活?正如我在我原來的問題我沒有在連接到數據庫PDO說 resources.db.isDefaultTableAdapter =真 問候 – opHASnoNAME 2010-02-24 09:09:01

回答

0

我假設你正確設置數據庫連接到$ db。之後,您必須將其設置爲Zend_Db_Table的默認適配器。

Zend_Db_Table::setDefaultAdapter($db); 

我只是假設這是出了什麼問題。但這是一個常見問題,所以我決定繼續前進並回答。

+0

喜在我的application.ini 它被設置爲像這樣默認的適配器定期的方式。不是zend的方式。並且測試工作。 這個問題是爲了理解爲什麼zend方式不起作用。 最好的問候 – ron 2010-02-25 11:22:01

0

由於您的腳本正常工作在本地機器上,我檢查的第一件事是,如果你已經在你的application.ini

嘗試編寫使用PDO功能的測試腳本正確地拿到了數據庫連接設置PARAMS本身(沒有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(); 
} 
+0

喜 : – ron 2010-02-25 11:15:57