pgsql 拡張機能の pg_connect() 関数を使用して、PHP クライアントを PostgreSQL 互換の PolarDB クラスターに接続します。
前提条件
PolarDB クラスターにデータベースアカウントが作成されていること。詳細については、「データベースアカウントの作成」をご参照ください。
PolarDB クラスターへのアクセスに使用するホストの IP アドレスがホワイトリストに追加されていること。詳細については、「クラスターホワイトリストの設定」をご参照ください。
PHP 環境のセットアップ
お使いのオペレーティングシステムに応じたセットアップ手順を選択してください。
Windows
WampServer をダウンロードしてインストールします。
php.iniを変更して PostgreSQL プラグインを有効にします。php.iniを開きます。 ファイルは通常、C:\wamp\bin\php\php<version>\php.iniにあります。ここで、<version>はインストールした PHP のバージョン (例:php5.6.40) と一致します。次の行を見つけ、行頭のセミコロンを削除してコメントを解除します。
;extension=php_pgsql.dll ;extension=php_pdo_pgsql.dll変更後:
extension=php_pgsql.dll extension=php_pdo_pgsql.dllファイルに該当の行が存在しない場合は、セミコロンを付けずに追加します。
C:\wamp\bin\php\php<version>からC:\windows\system32\へlibpq.dllをコピーします。Apache サービスを再起動します。
Linux
php-pgsqlドライバーをインストールします。sudo yum install php-pgsql.x86_64php.iniを開きます。vim /etc/php.ini次の行を
php.iniに追加します。extension=php_pgsql.so
PolarDB への接続
次のスクリプトは、PolarDB に接続し、pg_roles に対してクエリを実行して、結果を出力します。
<?php
// 接続パラメーター — 実際の値に置き換えてください
$host = "<cluster-endpoint>";
$port = "5432";
$dbname = "<database-name>";
$user = "<username>";
$password = "<password>";
// 接続を確立
$db = pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
if (!$db) {
echo "Error: Unable to connect to the database.\n";
exit(1);
} else {
echo "Connected successfully.\n";
}
// クエリを実行
$sql = "SELECT * FROM pg_roles;";
$result = pg_query($db, $sql);
if (!$result) {
echo pg_last_error($db);
} else {
echo "Query executed successfully.\n";
$rows = pg_fetch_all($result);
print_r($rows);
}
// 接続を閉じる
pg_close($db);
?>プレースホルダーを実際の値に置き換えてください。
| プレースホルダー | 説明 | 例 |
|---|---|---|
<cluster-endpoint> | PolarDB クラスターのエンドポイント。 「エンドポイントの表示または申請」をご参照ください。 | pc-xxxxxxxx.pg.polardb.aliyuncs.com |
<database-name> | 接続先のデータベース名。 | testdb |
<username> | データベースアカウントのユーザー名。 | testuser |
<password> | データベースアカウントのパスワード。 | — |
PostgreSQL 互換の PolarDB クラスターのデフォルトポートは 5432 です。
次のステップ
PostgreSQL 接続用の PHP 関数の完全なリストについては、PHP pgsql ドキュメントをご参照ください。