SQLite 関数
SQLite
&reftitle.intro;
この拡張モジュールは、SQLLite Embeddable SQL Database Engine 用の
拡張モジュールです。SQLiteは、組込み可能なSQLデータベースエンジン
を実装するCライブラリです。SQLiteライブラリをリンクするプログラム
は、別のRDBMSプロセスを実行することなくSQLデータベースにアクセス
することができます。
SQLiteは、巨大なデータベースサーバーに接続するために使用されるク
ライアントライブラリではありません。
SQLiteがそのサーバーなのです。
SQLiteライブラリは、ディスク上のデータベースを直接読み書きします。
より詳細な情報については、SQLiteのWebサイト
(&url.sqlite;)
を参照してください。
インストール
このパッケージに付属するINSTALLファイルを読んでください。
または、単にPEARインストーラで"pear install sqlite"を実行して下さ
い。SQLite自体も既に含まれており、他のソフトウエアをインストール
する必要は全くありません。
Windowsユーザは、DLL版のSQLite拡張モジュールを次の場所から入手可
能です。
(php_sqlite.dll)
PHP 5 では、SQLite 拡張モジュールとエンジンは PHP
自身にバンドルされ、デフォルトでコンパイルされます。
しかし、PHP 5.1.0 以降では &php.ini; 内に以下の行
php_extension=php_sqlite.dll を追加し、
手動で有効にする必要があります
(共有モジュールとしてバンドルされるからです)。
権限を持たないアカウントに対する Windows 版のインストール
Windows オペレーティングシステムでは、権限のないアカウントは
デフォルトで設定される TMP 環境変数を利用できません。
これにより SQLite は Windows
ディレクトリにテンポラリファイルを作成しますが、
望まれるものではありません。
そのため Web サーバもしくは Web
サーバが動作しているユーザーアカウントに対して TMP
環境変数を設定すべきです。
もし、Apache を使用しているなら、&httpd.conf; ファイル内で
SetEnv ディレクティブを使用することで実現可能です。
例えば、次のような感じです。
もしサーバレベルでこの設定を行うことができないのであれば、
スクリプト内で設定することができます。
この設定は Web サーバがファイルを生成した後で書き込んだり削除したりする
権限を持たせるディレクトリを指定する必要があります。
そうでない場合、次のようなエラーメッセージを受け取るでしょう。
malformed database schema -
unable to open a temporary database file for storing temporary tables
&reftitle.required;
以下の関数を利用可能とするには、SQLiteサポートを有効にしてPHPをコ
ンパイルするか、php.iniで動的にSQLite拡張モジュールをロードする必
要があります。
&reftitle.resources;
SQLiteインターフェイスでは2種類のリソースが使用されています。最初
のリソースはデータベース接続で、2番目は結果セットです。
&reference.sqlite.constants;
&reftitle.classes;
SQLiteDatabase
オープンされている SQLite データベースを表す
&reftitle.constructor;
__construct -
新規 SQLiteDatabase オブジェクトを生成する
&reftitle.methods;
query -
クエリを実行する
queryExec -
結果を返さないクエリを実行する
arrayQuery -
クエリを実行し、結果を配列として返す
singleQuery -
クエリを実行し、単一カラムに対する配列もしくは先頭行の値を返す
unbufferedQuery -
バッファされていないクエリを実行する
lastInsertRowid -
直近に挿入された行の行 ID を返す
changes -
直近のステートメントにより更新された行数を返す
createAggregate -
SQL ステートメントで使用する集約 UDF を登録する
createFunction - SQL ステートメントで使用する UDF を登録する
busyTimeout -
ビジータイムアウト時間を設定または無効にする
lastError -
直近に発生したエラーのエラーコードを返す
fetchColumnTypes -
特定のテーブルからカラム型の配列を返す
SQLiteResult
バッファされた SQLite の結果セットを表す
&reftitle.methods;
fetch -
結果セットから次行を配列として取得する
fetchObject -
結果セットから次行をオブジェクトとして取得する
fetchSingle -
結果セットから先頭カラムを文字列として取得する
fetchAll -
結果セットから全行を配列の配列として取得する
column -
結果セットの現在行からカラムを取得する
numFields -
結果セット内のフィールド数を返す
fieldName -
結果セット内の特定フィールドの名前を返す
current -
結果セットから現在行を配列として取得する
key -
現在行のインデックスを返す
next -
次の行番号へシークする
valid -
まだ行が残っているかどうかを返す
rewind -
結果セットの先頭の行番号へシークする
prev -
結果セットの前の行番号へシークする
hasPrev -
前の行が利用可能かどうかを返す
numRows -
結果セットの行数を返す
seek -
特定の行番号へシークする
SQLiteUnbuffered
バッファされていない SQLite 結果セットを表します。
欠課されていない結果セットはシーケンシャルで、前方シークのみ可能です。
&reftitle.methods;
fetch -
結果セットから次行を配列として取得する
fetchObject -
結果セットから次行をオブジェクトとして取得する
fetchSingle -
結果セットから先頭カラムを文字列として取得する
fetchAll -
結果セットから全行を配列の配列として取得する
column -
結果セットの現在行からカラムを取得する
numFields -
結果セット内のフィールド数を返す
fieldName -
結果セット内の特定フィールドの名前を返す
current -
結果セットから現在行を配列として取得する
next -
次の行番号へシークする
valid -
まだ行が残っているかどうかを返す
&reference.sqlite.ini;
&reference.sqlite.functions;