どうもこんにちは、まったです。
今回は、会社でホームページを作成するときに苦しんだ『PHPを使いデータベースに接続し、データを抽出する事例』を紹介したいと思います。
ホント悩みました・・・未だによくわかっていませんが、なんとか動いているようです。
※本サイトはアフィリエイト広告を利用しています。
PHPを使ってPostgreSQLのデータベースに接続してデータを抽出する
接続先DBはPostgreSQL
今回は会社の環境でPostgreSQLに接続するためのPHPを作成したいと思います。
接続先データベース:PostgreSQL
<環境>
OS:Windows 2019 server
MAMP
concrete5
PHPコードの大きな流れ
PHPコードの大きな流れは以下になります。
- データベースを接続する
- 必要なデータを抽出する
- 抽出したデータの結果を受取る
それでは、詳細な説明にはいりたいと思います。
①データベースを接続する
データベースを接続するためのコードが以下になります。
$dbh = new PDO(pesal:host=00.00.00.000;port=0000; dbname=$dbname, ‘User-name‘, ‘password‘);
黄色がPostgreSQLに接続するコートで、それに続き、host,port,データベース名、ユーザー名を設定します。
②必要なデータを抽出する
$sql = ‘SELECT * FROM “$db_name” WHERE カラム名 OEDER BY * DESC’;
SELECT FROMで、データベースから必要なカラムネイにします。個別に設定するときは、”,”で区切ります。
OEDER BY * DESC:*で設定したカラム名の降順に並べ替えます。
$stmt = $dbh -> prepare($sql);
$stmt -> bindValue(‘:カラム名’, “%抽出したい文字%”);
$stmt ->execute();
この部分は、カラム名から抽出したい文字を設定し、その文字が含まれたデータを取ってきます。
③SQL の結果を受け取る
$result = $stmt->fetchall (PDO::FETCH_ASSOC);
$dbh = null;
ここは抽出したデータを$resultで受け取ります。
PostgreSQLに接続しデータを抽出するプログラム
上記の結果を合わせると下記にようになります。
<?php
try{
//①データベースを接続する
$dbh = new PDO(pesal:host=00.00.00.000;port=0000; dbname=$dbname, ‘User-name’, ‘password’);
echo “OK!”;
//②必要なデータを抽出する
$sql = ‘SELECT * FROM “$db_name” WHERE カラム名 OEDER BY * DESC’;
$stmt = $dbh -> prepare($sql);
$stmt -> bindValue(‘:カラム名, “%抽出したい文字%”);
$stmt ->execute();
//③SQL の結果を受け取る
$result = $stmt->fetchall (PDO::FETCH_ASSOC);
$dbh = null;
}
catch (PDOException $e) {
echo ‘エラー!:.Se->get Message();
}
?>
まとめ
どうでしょうか。
まったけは、全くPHPコードわからないのですが、こんな感じでコードを書くことにより、データベースに接続し必要なデータを抽出することができました。
参考になれば幸いです。
コメント