1

私はいつも Application_Model_DbTable を使用してデータベースを操作していましたが、MySql を使用しました。次のように application.ini を構成しました。

resources.db.adapter = PDO_MYSQL 
resources.db.params.host = localhost
resources.db.params.username = admin    
resources.db.params.password = 12345
resources.db.params.dbname = daedu
resources.db.params.charset = utf8

fetchAll や insert などの dbtable の標準関数を使用しました。同じ結果を得る方法はありますが、PostgreSQL を使用していますか?

PostgreSQL をインストールし、pgAdmin III を使用してデータベースとテーブルを作成しました。問題は、db-table を使用して Zend に接続する方法ですか?

私は次のように構成しました:

resources.db.adapter = PDO_PGSQL 
resources.db.params.host = localhost
resources.db.params.port = 5432
resources.db.params.username = postgres 
resources.db.params.password = 12345
resources.db.params.dbname = postgres
resources.db.params.charset = utf8

次のように dbtable を使用して作業します。

class Application_Model_DbTable_Postrgres extends Zend_Db_Table_Abstract
{
    protected $_name = 'postgres';

    public function insert(){
        $data = array(
            'name' => "dan"
        );

        $this->insert($data);
    }
}

コントローラーで:

$f = new Application_Model_DbTable_Postrgres();
$f->insert();

しかし、ページは開かれず (エラー: net::ERR_EMPTY_RESPONSE)、テーブルに新しい挿入がありません。db テーブルに挿入しようとするとfetchAll、アプリケーション エラーが発生します。

4

2 に答える 2

1

問題を解決しました!どのように?public/index.phpファイルで開発モードをオンにしました。

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

私のテーブルにPrymaryKeyがないというエラーが表示されました。SQlを追加して、それを追加しました。すべてが機能します!したがって、ZendをPostgreSQLに接続するこの方法は完全に正しいです!

于 2013-01-05T17:12:29.573 に答える
1
resources.db.adapter = PDO_PGSQL

PDO_PGSQLをインストールする必要があります。

于 2013-01-04T21:19:03.007 に答える