第1回「PostgreSQLをインストール」xamppでphpPgAdminを操作

今回は「PostgreSQL」というデータベースについて触れていきます。

※「PostgreSQL」は古いデータベースの為、今から作られるなら「MySQL」や「SQLlit」を使われることをオススメします。(2018年3月時点)既存システムを改修するために設定しましたが、普段は「MySQL」を使っています。

かなり、ボリューム多めになります。ゆっくり時間をかけて読んでください。

 

目次

・「PostgreSQL」のインストール

・「PostgreSQL」の動作確認

・休憩

・「phpPgAdmin」を設置

・「xampp」でSQL文を実行

・まとめ

・今回の記事を書くにあたって参考にしたサイト

 


・「PostgreSQL」のインストール

PostgreSQLをダウンロードします。

公式サイト:PostgreSQL Download から、それぞれの環境に設定して、インストーラーをダウンロードしてください。

自分の場合は、Windows10でしたので、セレクトで選択し、最新版のPostgreSQLをダウンロードしました。

そして、ダウンロードしたインストーラーを実行します。

「next」を押して進めていくのですが、下記の設定は気を付けてください。

■Installation Directory
ディレクトリを指定(デフォルトはC:\Program Files\PostgreSQL\9.5)
例:C:\PostgreSQL\9.5

「Program File」では、スペース(空白)が入ってしまうため、Cドライブ直下にインストールします。

 

■Data Directory
ディレクトリを指定(デフォルトはC:\Program Files\PostgreSQL\9.5\data)
例:C:\PostgreSQL\9.5\data

上記と同じ理由です。

 

■Password
任意のパスワードを指定
例:testpassword

■Retype password
Passwordと同じ値を入力

 

■Port
ポート番号を指定(デフォルトは5432)
例:5432

デフォルトのままでOKです。

 

■Locale
ロケールを指定(デフォルトは[Default locale])
例:C

必ず「C」に変更してください。

 

インストールが始まります。(5分位)

 

インストールが終わると、「Launch Stack Builder at exit?」というメッセージが表示されます。

デフォルトでは左側のチェックボックスがオンになっています。今回はスタックビルダの起動は不要なので、チェックボックスをオフにして、「Finish」を押します。

スタックビルダは、データベースを使いやすくするツールです。今は不要ですが、インストール後は以下のプログラムを実行すれば起動可能です。
(Installation Directory)\bin\stackbuilder.exe
例:C:\PostgreSQL\9.5\bin\stackbuilder.exe

 

インストール完了です。

 

次に環境変数を設定します。

なんの為に環境変数を設定するかというと、そのコンピュータのどこからでも、「C:\PostgreSQL\9.5\bin\」フォルダ内の全てのexeファイルを実行できるようにするためです。

 

コントロールパネルを開きます。

 

「システムとセキュリティ」→「システム」→「システムの詳細設定」→「環境変数」

 

「システム環境変数」の変数「Path」を選択し、「編集」を押します。

 

変数値の頭に、以下の値を追記します !元の設定値は削除しないこと!

(Installation Directory)\bin\;
例:C:\PostgreSQL\9.5\bin\;

「OK」を押下し変更を保存します。

「システムのプロパティ」「システム」の画面を閉じる

 

最後にパソコンを再起動して終了です。

 

参考URL:https://qiita.com/minr/items/1078181c5723da8db17e


・「PostgreSQL」の動作確認

 

デフォルトでは、

ユーザー名:postgres

パスワード:インストール時に設定した文字列

になります。

 

コマンドプロンプトを開きます(「ファイル名を指定して実行」(Windows+Rキー押下)より「cmd」を入力し実行)

 

「psql」コマンドを実行します。コピペでOKです。

環境変数を設定している場合

 psql -U postgres

設定していない場合(フルパスで指定)

 C:\"Program Files"\PostgreSQL\9.5\bin\psql -U postgres

パスワードを求められますので、インストール時に設定したパスワードを入力し、エンターします。

上記のような画面にうつれば、「PostgreSQL」は正常にインストールされています。

 

テストでヘルプを表示してみましょう。

postgres=# help

 

「PostgreSQL」を終了する場合は、下記のコマンドを実行します。

postgres=# \q

 

以上で、動作確認終了です。

次に「phpPgAdmin」を設置しますが、その前にすこし休憩しましょう。

 

 

参考URL:https://qiita.com/minr/items/1078181c5723da8db17e


・休憩(とばしてもOKです。)

 川沿いを散歩したり、自転車で走ったりするのが、マイブームです。

多摩川で整備されているところが、滝のようになっていて、魚が上流へ登れるように配慮されていました。

細かい作業をやりすぎると、頭がおかしくなって、独り言が止まらなくなります。そんな時は川辺でボーっとすると、なぜか落ち着いてくるので、自分にとっての癒しスポットを発見した感じで嬉しいです!!

 つかれた時、どういった癒し方をされていますか?

 

日々、楽しく活動したいですね!!

 

おっと、そろそろ続き書きます!!!

 

 


・「phpPgAdmin」を設置

 

公式サイト:http://phppgadmin.sourceforge.net/doku.php から、zipファイルをダウンロードします。

 

zipファイルを解凍したら、そのファイルを「phpPgAdmin」と名前を変更し、htdocsフォルダに移動してください。

 

これで本来なら動くのが普通なのですが、絶対動きません。

なので複数のファイルを書き換えます。

phpPgAdmin\conf\config.inc.php

変更前 

変更前
$conf['extra_login_security'] = true;

変更後
$conf['extra_login_security'] = false;

参考サイト:http://mogura.in/blog/2008/11/25/postgresql-phppgadmin

 

xampp\php\php.ini

変更前
;extension=pgsql

変更後
extension=pgsql

PDO形式を使う場合は、付近にある下記もコメントアウトを外します。というか外してしまいましょう。長い目でみたら、PDOが使えないのは致命的ですので。

変更前
;extension=pdo_pgsql

変更後
extension=pdo_pgsql

参考サイト:http://blog.systemjp.net/entry/20110413/p1

 

これで一度、「http://localhost/phpPgAdmin/」にアクセスしてみてください。

「PostgreSQL」を選択し、アカウント情報を入力し、ログインボタンを押します。

デフォルトでは、

ユーザー名:postgres

パスワード:インストール時に設定した文字列

になります。

 

ログインが正常にできる場合は、下記の画面に推移します。

 

ただ、PHPのバージョンが7以上だと、エラーが発生してログインできないはずです。

なぜなら、「phpPgAdmin」自体のソースが古くて、もうアップデートされていないツールだからです。

正直言って、もう・・・使われないツールです。

(PHP ver7からは、クラスの中にクラスメイト同じメソッドを定義するとエラーを出します。)

それでも、使いたい場合は、下記を変更します

ボリューム多いです。ゆっくり編集してください。

classes/ArrayRecordSet.php
15行目
    function ArrayRecordSet($data) {
を
    function __construct($data) {
に変更。


classes/Misc.php
15行目
        function Misc() {
を
        function __construct() {
に変更。


classes/class.select.php
27行目
    function XHtmlSimpleElement($element = null) {
を
    function __construct($element = null) {
に変更。

96行目
    function XHtmlElement($text = null) {
を
    function __construct($text = null) {
に変更。

162行目
    function XHTML_Button ($name, $text = null) {
を
    function __construct ($name, $text = null) {
に変更。

173行目
    function XHTML_Option($text, $value = null) {
を
    function __construct($text, $value = null) {
に変更。

183行目
    function XHTML_Select ($name, $multiple = false, $size = null) {
を
    function __construct ($name, $multiple = false, $size = null) {
に変更。


classes/database/ADODB_base.php
23行目
    function ADODB_base(&$conn) {
を
    function __construct(&$conn) {
に変更。


classes/database/Connection.php
22行目
    function Connection($host, $port, $sslmode, $user, $password, $database, $fetchMode = ADODB_FETCH_ASSOC) {
を
    function __construct($host, $port, $sslmode, $user, $password, $database, $fetchMode = ADODB_FETCH_ASSOC) {
に変更。


classes/database/Postgres.php
172-173行目
    function Postgres($conn) {
        $this->ADODB_base($conn);
を
    function __construct($conn) {
        parent::__construct($conn);
に変更。


libraries/adodb/adodb.inc.php
237行目
        function ADODB_Cache_File()
を
        function __construct()
に変更。

430行目
    function ADOConnection()
を
    function __construct()
に変更。

2899行目
    function ADORecordSet($queryID)
を
    function __construct($queryID)
に変更。

3890行目
        function ADORecordSet_array($fakeid=1)
を
        function __construct($fakeid=1)
に変更。

3896行目
            $this->ADORecordSet($fakeid); // fake queryID
を
            parent::__construct($fakeid); // fake queryID
に変更。


libraries/adodb/drivers/adodb-postgres64.inc.php
876行目
    function ADORecordSet_postgres64($queryID,$mode=false)
を
    function __construct($queryID,$mode=false)
に変更。

892行目
        $this->ADORecordSet($queryID);
を
        parent::__construct($queryID);
に変更。


libraries/adodb/drivers/adodb-postgres7.inc.php
25行目
    function ADODB_postgres7()
を
    function __construct()
に変更。

27行目
        $this->ADODB_postgres64();
を
        parent::__construct();
に変更。

218行目
    function ADORecordSet_postgres7($queryID,$mode=false)
を
    function __construct($queryID,$mode=false)
に変更。

220行目
        $this->ADORecordSet_postgres64($queryID,$mode);
を
        parent::__construct($queryID,$mode);
に変更。


libraries/decorator.inc.php
94行目
    function Decorator($value) {
を
    function __construct($value) {
に変更。

105行目
    function FieldDecorator($fieldName, $default = null) {
を
    function __construct($fieldName, $default = null) {
に変更。

117行目
    function ArrayMergeDecorator($arrays) {
を
    function __construct($arrays) {
に変更。

132行目
    function ConcatDecorator($values) {
を
    function __construct($values) {
に変更。

147行目
    function CallbackDecorator($callback, $param = null) {
を
    function __construct($callback, $param = null) {
に変更。

159行目
    function IfEmptyDecorator($value, $empty, $full = null) {
を
    function __construct($value, $empty, $full = null) {
に変更。

176行目
    function UrlDecorator($base, $queryVars = null) {
を
    function __construct($base, $queryVars = null) {
に変更。

202行目
    function replaceDecorator($str, $params) {
を
    function __construct($str, $params) {
に変更。

引用元:http://pcboy.dip.jp/xoops/modules/publisher/item.php?itemid=789

 

これで、正常にログインできるようなります。

テストでデータベースとテーブルを作り、データを入れてみて(少しでいいと思います)、試してみてください。

 

これで、phpPgAdminの設置は以上です。

 


・「xampp」でSQL文を実行

 

最後に、PHPファイルから、PostgreSQLのデータベースを操作します。

まずは、接続します。

/********** それぞれのデータベース情報に書き換えてください **********/

$hostname = "ホスト名";
$username = "ユーザー名";
$password = "パスワード";
$database = "データベース名";

try{
	$pdo = new PDO("pgsql:dbname=$database;host=$hostname", $username, $password );
} catch (Exception $e) {
	exit('データベース接続に失敗しました。'.$e->getMessage());
}

3行目~7行目を、デフォルトだと下記のように書き換えます。

ホスト名(xamppの場合):localhost

ユーザー名(デフォルトなら):postgres

パスワード(デフォルトなら):インストール時に設定したパスワード

データベース名:操作したいデータベース名

 

なお、PDO形式でデータベースに接続します。2018年3月時点では、PDO形式が主流です。

参考サイト:PHP関数リファレンス

 

 

つづいて、データベース内の情報を検索します。(SELECT句が使えるなら、大体のSQL文が使えます。)

try{
	$stmt = $pdo->prepare('
	SELECT *
	FROM users 
	');
	
	$stmt -> execute();//実行
	if ( $stmt == false ){
		echo "検索しましたがデータが一つもありませんでした。";
	}
} catch (Exception $e) {
	exit('データベース検索に失敗しました。'.$e->getMessage());
}


$user_display_name_array = array();
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
	array_push($user_display_name_array,$row["user_display_name"]);
	echo $row["user_display_name"];
	echo "<br>";
}
print_r($user_display_name_array);

ブラウザで「http://localhost/~~任意のファイル名」を確認すると

データが表示されていることが分かります。

 

ここまで出来ましたら、データベースへのアクセスが完全にできているという事になります。

 

今回は以上です。お疲れさまでした。最後までできましたでしょうか。

 


・まとめ

 新しい事、覚えたり試したりするのって、体力つかいますが楽しいです!!

もう使われない、将来性のないデータベースかもしれませんが、新しいことができて自信が出ました!!

ゆっくり一個ずつやると、うまくいきますね。あれっ、これってニートの考え方じゃね?・・・まっいっか!

 

という事で、本当にお疲れ様でしたー!!


・今回の記事を書くにあたって参考にしたサイト

Windows10にPostgreSQL9.5をインストール/アンインストールする ← 本当にオススメ!

PostgreSQL phpPgAdminが動かない

XAMPPでPostgreSQLを扱えるようにする

WindowsでPostgreSQLを使ってみよう

phppgadmin 5.2のPHP7環境でのwarning対策

PHP関数リファレンス

 

参考にさせて頂いたサイトの管理者様、今回もありがとうございました。

,,,,

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です