PHPからPostgreSQLへ接続
PHPからPostgreSQLへ接続 → クエリを発行 → データ取得しているときの覚書。
環境: CentOS Stream 8, PostgreSQL 14.2, PHP 7.4.19
参考サイト
pgsqlインストール
PHPからPostgreSQLに接続するためのextensionをインストール
# dnf install php-pgsql
/etc/php.d/20-pgsql.iniが作成された。
依存関係のlibpg5がpgdg-commonリポジトリからインストールされた。
これはPostgreSQLをインストールした際に追加されたリポジトリ。
確認
# php --ri pgsql
pgsqlPostgreSQL Support => enabledPostgreSQL(libpq) Version => 13.5PostgreSQL(libpq) => PostgreSQL 13.5 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-5), 64-bitMultibyte character support => enabledSSL support => enabledActive Persistent Links => 0Active Links => 0Directive => Local Value => Master Valuepgsql.allow_persistent => On => Onpgsql.max_persistent => Unlimited => Unlimitedpgsql.max_links => Unlimited => Unlimitedpgsql.auto_reset_persistent => Off => Offpgsql.ignore_notice => Off => Offpgsql.log_notice => Off => Off
サンプルプログラム
ローカルホストのPostgreSQLからデータ取得するサンプル
データベース: test
接続ユーザー: postgres
テーブル名: company
$conn = pg_connect("host=localhost port=5432 dbname=test user=postgres password=pass");$result = pg_query($conn, "SELECT * FROM company LIMIT 10");$dictionary = pg_fetch_all($result);vardump($dictionary);
escapeやprepareの関数は一通り用意されているので後は自分でDBクラスを作る。
参考: PHP: PostgreSQL 関数 - Manual
個人的にはWordPressをよく使うのでwp-db.phpを参考にする予定。
LaravelなどのPHP Frameworkを参考にしてもいいと思う。
参考: Laravel - The PHP Framework For Web Artisans
【関連記事】
- CentOS8にPostgreSQLをインストール。Windows10からDBeaverで接続
- CentOS Stream 8 + Nginx + PHP + MariaDB + Postfixの環境を構築(2021年版)