pgsql 拡張の pg_connect() 関数を使用して、Oracle 互換の PolarDB クラスターに PHP クライアントを接続します。
前提条件
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該当の行がファイル内に存在しない場合は、セミコロンを付けずに追加してください。
libpq.dllをC:\wamp\bin\php\php<version>からC:\windows\system32\にコピーします。Apache サービスを再起動します。
Linux
php-pgsqlドライバーをインストールします。sudo yum install php-pgsql.x86_64php.iniを開きます。vim /etc/php.iniphp.iniに以下の行を追加します。extension=php_pgsql.so
PolarDB への接続
以下のスクリプトは、PolarDB に接続し、pg_roles に対してクエリを実行して結果を出力します。
<?php
// 接続パラメーター — 実際の値に置き換えてください
$host = "<cluster-endpoint>";
$port = "1521";
$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 クラスターのエンドポイントです。「エンドポイントの表示または申請」をご参照ください。 | "host=xxxxxx" |
<database-name> | 接続先のデータベース名 | "dbname=xxxx" |
<username> | データベースアカウントのユーザー名 | "user=xxx" |
<password> | データベースアカウントのパスワード | — |
Oracle 互換の PolarDB クラスターのデフォルトポートは 1521 です。
次のステップ
PostgreSQL 接続用の PHP 関数の完全な一覧については、「PHP pgsql ドキュメント」をご参照ください。