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;
<classname>SQLiteDatabase</classname> オープンされている SQLite データベースを表す
&reftitle.constructor; __construct - 新規 SQLiteDatabase オブジェクトを生成する
&reftitle.methods; query - クエリを実行する queryExec - 結果を返さないクエリを実行する arrayQuery - クエリを実行し、結果を配列として返す singleQuery - クエリを実行し、単一カラムに対する配列もしくは先頭行の値を返す unbufferedQuery - バッファされていないクエリを実行する lastInsertRowid - 直近に挿入された行の行 ID を返す changes - 直近のステートメントにより更新された行数を返す createAggregate - SQL ステートメントで使用する集約 UDF を登録する createFunction - SQL ステートメントで使用する UDF を登録する busyTimeout - ビジータイムアウト時間を設定または無効にする lastError - 直近に発生したエラーのエラーコードを返す fetchColumnTypes - 特定のテーブルからカラム型の配列を返す
<classname>SQLiteResult</classname> バッファされた SQLite の結果セットを表す
&reftitle.methods; fetch - 結果セットから次行を配列として取得する fetchObject - 結果セットから次行をオブジェクトとして取得する fetchSingle - 結果セットから先頭カラムを文字列として取得する fetchAll - 結果セットから全行を配列の配列として取得する column - 結果セットの現在行からカラムを取得する numFields - 結果セット内のフィールド数を返す fieldName - 結果セット内の特定フィールドの名前を返す current - 結果セットから現在行を配列として取得する key - 現在行のインデックスを返す next - 次の行番号へシークする valid - まだ行が残っているかどうかを返す rewind - 結果セットの先頭の行番号へシークする prev - 結果セットの前の行番号へシークする hasPrev - 前の行が利用可能かどうかを返す numRows - 結果セットの行数を返す seek - 特定の行番号へシークする
<classname>SQLiteUnbuffered</classname> バッファされていない SQLite 結果セットを表します。 欠課されていない結果セットはシーケンシャルで、前方シークのみ可能です。
&reftitle.methods; fetch - 結果セットから次行を配列として取得する fetchObject - 結果セットから次行をオブジェクトとして取得する fetchSingle - 結果セットから先頭カラムを文字列として取得する fetchAll - 結果セットから全行を配列の配列として取得する column - 結果セットの現在行からカラムを取得する numFields - 結果セット内のフィールド数を返す fieldName - 結果セット内の特定フィールドの名前を返す current - 結果セットから現在行を配列として取得する next - 次の行番号へシークする valid - まだ行が残っているかどうかを返す
&reference.sqlite.ini;
&reference.sqlite.functions;