PHP:PostgreSQLで取得した全てのデータを配列で取得「pg_fetch_all」

phpPostgreSQLのデータを取得する時に、取得したデータ全て配列で取得したい場合があります。

pg_fetch_all()」を使用すれば「pg_query()」で実行した全てのデータを配列で取得することができます。

下記にpg_fetch_all()の説明と使用方法を記述します。

PostgreSQLはあまり使用することが少ないので、メモしておきます。


「pg_fetch_all()」の説明

取得した全てのデータを配列で取得します。

pg_fetch_all(クエリ結果)

「pg_fetch_all()」の使用方法

下記にpg_fetch_all()を使用した時の使用例を記述します。

<?php

// PostgreSQLに接続
$conn = pg_connect('host=localhost dbname=dbname user=username password=password');

// SQL文を実行
$result = pg_query('SELECT * FROM sample');

// 全てのデータを配列で取得
$data = pg_fetch_all($result);

// PostgreSQLを切断
$close = pg_close($conn);

?>

pg_fetch_all()で取得した値は下記のように配列で取得します。

Array
(
	[0] => Array
		(
			[id] => 1
			[name] => test1
			[status] => 1
		)

	[1] => Array
		(
			[id] => 2
			[name] => test2
			[status] => 2
		)

		・
		・
		・
)

データの取得方法は他にも色々ありますが、配列で全てのデータを取得する場合は
「pg_fetch_all()」を使用すると、配列で取得することができます。

PostgreSQL:phpでデータベースの接続と切断「PostgreSQL」

PostgreSQLデータベースphp接続する方法と切断する方法をメモします。

いつも忘れてしまうので。

phpでPostgreSQLに接続する場合、pg_connect()を使用すればデータベースに接続することができます。
また、PostgreSQLを切断する場合は、pg_close()を使用します。

下記にPostgreSQLphp接続切断をした時の方法を記述します。


phpでPostgreSQLへの接続と切断をする方法

・PostgreSQLに接続「pg_connect()」

ホスト名、データベース名、ユーザー名、パスワードを記述します。

$conn = pg_connect('host=localhost dbname=dbname user=username password=password');

・PostgreSQLを切断「pg_close()」

接続情報を引数に渡します。

$close = pg_close($conn);

接続・切断に失敗した場合は戻り値でFALSEが返ります。


PostgreSQL:pg_dumpでデータベースをバックアップ

PostgreSQLデータベースバックアップする時に「pg_dump」を使用すればデータをバックアップすることができます。

データのバックアップやサーバ移行などをする時に便利だと思います。

下記にPostgreSQLデータベースpg_dumpを使用してバックアップした時の方法をメモします。


pg_dumpを使用したデータベースのバックアップ

SSHでサーバにログインし、postgresユーザに変更します。

# su - postgres

「dbname」というデータベースをバックアップする場合、下記のように記述します。
「dbname.sql」にデータベースの情報を出力します。
オプションで「-d」を指定し、INSERT文で出力するように設定しています。

pg_dump -d dbname > dbname.sql

出力したファイルの場所は設定によって違いますが、設定ファイルで指定している場所に出力されます。

/var/lib/pgsql/dbname.sql

他にもテーブルの指定やデータのみ出力するなど、色々オプションがあります。
全データベースのバックアップをする場合は、「pg_dumpall」を使用すると全てのデータベースをバックアップすることが可能です。

pg_dumpall > dball.sql

PostgreSQL:vacuumdbでデータベース不要領域の掃除

サーバに接続し、コマンドからvacuumdbを実行し、不要領域の掃除を行う。
※cronで定期的にvacuumdbを実行できるようにすることも有。

■ vacuumdb
PostgreSQL データベースの不要領域の掃除を行う。

■ 書式

vacuumdb [オプション] [データベース名]

■ 使用例
1.hogeというデータベースをバキュームする。

$ vacuumdb hoge

2.バキュームが正常に完了した場合、下記の様に出力される。

VACUUM