第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をインストール/アンインストールする ← 本当にオススメ!
phppgadmin 5.2のPHP7環境でのwarning対策
参考にさせて頂いたサイトの管理者様、今回もありがとうございました。
Leave a comment