私は長年 PHP と MySQL を使用してきましたが、代わりに PostgreSQL の使用を開始しようとしています。
好ましい方法は何ですか?
PDOオブジェクト経由ですか、それとももっと良いものがありますか?
私は長年 PHP と MySQL を使用してきましたが、代わりに PostgreSQL の使用を開始しようとしています。
好ましい方法は何ですか?
PDOオブジェクト経由ですか、それとももっと良いものがありますか?
PDO オブジェクトは新しい話題です。ターゲット プラットフォームが常に PHP 5.2 以降を実行していることを確認できる限り、それをお勧めします。
古いバージョンの PHP と互換性のある PostgreSQL をサポートするデータベース抽象化レイヤーは他にも多数あります。ADODBをお勧めします。
MySQL の作業であっても、実際には PDO または別の抽象化レイヤーを使用する必要があります。そうすれば、この問題が再び発生することはありません。
Zend データベースの使用:
require_once 'Zend/Db.php';
$DB_ADAPTER = 'Pdo_Pgsql';
$DB_CONFIG = array(
'username' => 'app_db_user',
'password' => 'xxxxxxxxx',
'host' => 'localhost',
'port' => 5432,
'dbname' => 'mydb'
);
$db = Zend_Db::factory($DB_ADAPTER, $DB_CONFIG);
個人的には、選択できる場合はすべてのデータベース作業に PDO を使用しています。プリペアド ステートメントは私の生活を楽にしてくれます。データベース システム間でシームレスです。慣れていないシステムで作業する必要がある場合に便利です。
独自の抽象化を展開する場合、または手続き型モデルを使用する場合は、Postgre 関数を次に示します: http://ca.php.net/manual/en/ref.pgsql.php
pg_whatever 関数もありますが、使用しないでください。
古い、メンテナンスされていないデータベース ドライバーを使用します。 PDOは行く方法です。
PDO を使用しない場合は、継承された PDO クラスまたはラッパー クラスを作成することもお勧めします。これにより、将来の柔軟性が大幅に向上します。すなわち。クエリ実行時間の計算。
アプリケーションの規模によっては、バックエンドへの接続数を考慮する必要がある場合があります。PHP の永続的な接続と PostgreSQL はうまく連携しないというのがコンセンサスのようです。仲介役として利用するべきです。