一千萬個為什麽

搜索

通過zend框架使db連接持久化

我正在使用zend框架。目前每次我需要使用db我繼續並連接到DB:

function connect()
{
    $connParams = array(
        "host"   => $host,
        "port"    => $port,
        "username" => $username,
        "password" => $password,
        "dbname"   => $dbname
    );

    $db = new Zend_Db_Adapter_Pdo_Mysql($connParams);
    return $db
}

所以我每次需要使用db時都會調用connect()函數

我的問題是......假設我想在我的網站中重復使用$ db,並且只在網站加載的最初階段連接一次,然後在網站發送給用戶之前關閉連接,那將是最好的練習完成這個?

Zend中的哪個文件應該保存$ db,我應該使用什麽方法來保存它(全局變量?),以及我應該關閉哪個文件?

最佳答案

If you are using the default project structure (with the application, library, tests and public folders), you should use set up the db parameters in application/configs/application.ini

application.ini示例:

[production]
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "testuser"
resources.db.params.dbname = "testdb"
resources.db.params.password = "testpasswd"
resources.db.isDefaultTableAdapter = true

通過這種方式,zend框架將自動打開和關閉與數據庫的連接,您可以使用Zend_Db_Table或Zend_Db_Table_Abstract類輕松查詢表,例如,檢索學生可以編寫模型的SSN的數據( application/models/Student.php )看起來像這樣:

<?php
class Model_Student extends Zend_Db_Table_Abstract
{
    protected $_name = "student";

    public function fetchRowsBySSN($ssn)
    {
        $select = $this->select();
        $select->where('ssn = ?', $ssn);

        return $this->fetchRow($select)->toArray();
    }
}

正如您所看到的,不需要打開/關閉連接,您將獲得一個帶有學生記錄的字段和值的關聯數組。

轉載註明原文: 通過zend框架使db連接持久化