WindowsのXAMPPにPostgreSQLを導入するメモ
- 2013/09/11 13:58
- カテゴリー:制作, プログラム
- タグ:PHP, PostgreSQL
PostgreSQLを導入してみたので、忘れないうちにメモ。
主な参考サイト
トラブル
PHPからPostgreSQLに接続する際、以下のようなエラーになった。
Call to undefined function pg_connect()
php.ini
で php_pdo_pgsql.dll
と php_pgsql.dll
を有効にする必要がある。それでもダメなら、Windowsの環境変数にPHPへのパス(C:\xampp\php
など)を書き込めば回避できるみたい。
コマンドプロンプトからの操作例
#ユーザー名を指定してPostgreSQLにログイン
psql -U postgres
#ユーザー名とデータベースを指定してPostgreSQLにログイン
psql -U postgres -d test
#データベース作成
CREATE DATABASE test;
#データベース一覧
¥l
#データベース選択
¥c test
#テーブル作成
CREATE TABLE sample1(
id integer,
name text
);
#テーブル一覧
\dt
#テーブル定義確認
\d sample1
#SQLを発行
INSERT INTO sample1 VALUES(2, 'test2');
SELECT * FROM sample1;
PHPからの、pg_connect()での接続例
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>テスト</title>
</head>
<body>
<?php
$con = pg_connect('host=localhost dbname=test user=postgres password=1234');
if (!$con) {
exit('データベースに接続できませんでした。');
}
$result = pg_query($con, 'SELECT * FROM sample1');
while ($data = pg_fetch_array($result)) {
echo '<p>' . $data['id'] . ':' . $data['name'] . "</p>\n";
}
$con = pg_close($con);
if (!$con) {
exit('データベースとの接続を閉じられませんでした。');
}
?>
</body>
</html>
PHPからの、PDOでの接続例
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>テスト</title>
</head>
<body>
<?php
try {
$pdo = new PDO('pgsql:dbname=test;host=localhost', 'postgres', '1234');
} catch (PDOException $e) {
exit('データベースに接続できませんでした。' . $e->getMessage());
}
$stmt = $pdo->query('SELECT * FROM sample1');
if (!$stmt) {
$info = $pdo->errorInfo();
exit($info[2]);
}
while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo '<p>' . $data['id'] . ':' . $data['name'] . "</p>\n";
}
$pdo = null;
?>
</body>
</html>