SQLiteへの接続

広告

次にSQLiteへ接続してみます。

SQLiteについては他の時に作った適当なデータベースへ接続テストだけ行いました。SQLite2のデータベースには無事接続できましたが、SQLite3で作成したデータベースへ接続しようとした時には下記のエラーメッセージが表示されました。

DB Error: no database selected

設定が間違っているのかも分かりませんが、現時点ではSQLite3のデータベースへの接続確認は出来ていません。

今回SQLite2で作成しておいた「D:¥Apache Group¥Apache2¥htdocs¥sqlite¥test.db」と言うデータベースへ接続を行いました。SQLiteですのでユーザー名などは無い為DSNは下記のようになります。

$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'D:¥Apache Group¥Apache2¥htdocs¥sqlite¥test.db',
);

※DSNは配列で作成しました。

またSQLiteのデータベース固有の関数である「sqlite_open」関数では、ファイルパーミッションの指定を行っていたのと、PEARのサンプルを見てもモードを指定していたので下記のように記述するのが正しいかもしれません。(今回のテストではどちらでも接続には成功しました)。

$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'D:¥Apache Group¥Apache2¥htdocs¥sqlite¥test.db',
    'mode'     => '0644',
);

サンプルプログラム

では実際に試してみます。

sample6-1.php

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

require_once 'DB.php';

$dsn = array(
    'phptype'  => 'sqlite',
    'database' => 'D:¥Apache Group¥Apache2¥htdocs¥sqlite¥test.db',
);

$db = DB::connect($dsn);
if (PEAR::isError($db)) {
    die($db->getMessage());
}

print('接続に成功しました');

$db->disconnect();

?>

</body>
</html>

上記をWWWサーバに設置しブラウザで見てみると下記のようなりました。

PEAR::DBでSQLiteへ接続

( Written by Tatsuo Ikura )