CXX. SQLite

導入

この拡張モジュールは、SQLLite Embeddable SQL Database Engine 用の 拡張モジュールです。SQLiteは、組込み可能なSQLデータベースエンジン を実装するCライブラリです。SQLiteライブラリをリンクするプログラム は、別のRDBMSプロセスを実行することなくSQLデータベースにアクセス することができます。

SQLiteは、巨大なデータベースサーバーに接続するために使用されるク ライアントライブラリではありません。 SQLiteがそのサーバーなのです。 SQLiteライブラリは、ディスク上のデータベースを直接読み書きします。

注意: より詳細な情報については、SQLiteのWebサイト (http://sqlite.org/) を参照してください。

インストール

このパッケージに付属するINSTALLファイルを読んでください。 または、単にPEARインストーラで"pear install sqlite"を実行して下さ い。SQLite自体も既に含まれており、他のソフトウエアをインストール する必要は全くありません。

Windowsユーザは、DLL版のSQLite拡張モジュールを次の場所から入手可 能です。 (php_sqlite.dll)

PHP 5 では、SQLite 拡張モジュールとエンジンは PHP 自身にバンドルされ、デフォルトでコンパイルされます。

要件

以下の関数を利用可能とするには、SQLiteサポートを有効にしてPHPをコ ンパイルするか、php.iniで動的にSQLite拡張モジュールをロードする必 要があります。

リソース型

SQLiteインターフェイスでは2種類のリソースが使用されています。最初 のリソースはデータベース接続で、2番目は結果セットです。

定義済の定数

関数sqlite_fetch_array()sqlite_current() は、結果配列の種別を表すために定 数を使用します。以下の定数が定義されています。

表 1. SQLite fetch 定数

定数意味
SQLITE_ASSOC カラムは、フィールド名を配列インデックスとする配列に返されます。
SQLITE_BOTH カラムは、数値インデックスとフィールド名による配列インデックス を共に有する配列に返されます。
SQLITE_NUM カラムは、フィールドへの数値インデックスを有する配列に返されま す。このインデックスは0から始まり、結果の先頭フィールドとなりま す。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 2. SQLite設定オプション

名前デフォルト変更の可否
sqlite.assoc_case0PHP_INI_ALL
PHP_INI_* 定数に関する詳細と定義については、 ini_set()を参照してください。

以下に設定ディレクティブに関す る簡単な説明を示します。

sqlite.assoc_case int

ハッシュのインデックスに大文字小文字混用(0)、 大文字(1)、小文字 (2)のど れを使用するかを指定します。

このオプションは、データベーススキーマ中での実際のフィールド名の ケースによらず、カラム名が常に大文字または小文字で返されるような 他のデータベースシステムとの互換性が必要な場合に特に有用です。

SQLiteライブラリは、カラム名をそのままのケース(これは、 スキーマで使用したケースに一致します)で返します。 sqlite.assoc_case0 を指定した場合、そのままのケースは保持されます。このオプションを 1 または 2 に設定した場合、 PHPはハッシュキーのケースをそれぞれ大文字または小文字のキーに変 換します。

このオプションを使用することで若干の性能劣化がありますが、 PHPスクリプトで自分で大文字/小文字変換を行うよりはかなり高速です。

目次
sqlite_array_query -- 指定したデータベースに対してクエリを実行し、配列を返す
sqlite_busy_timeout --  ビジータイムアウト時間を設定またはビジーハンドラを無効にする
sqlite_changes --  直近のSQLステートメントにより変更されたレコード数を返す
sqlite_close -- オープンされたSQLiteデータベースを閉じる
sqlite_column -- カレントの結果セットのレコードからカラムを1列取得する
sqlite_create_aggregate -- SQLステートメントで使用する集約UDFを登録する
sqlite_create_function --  SQLステートメントで使用するために"通常の"ユーザ定義関数を登録する
sqlite_current -- 結果セットからカレントのレコードを配列として取得する
sqlite_error_string -- エラーコードの説明を返す
sqlite_escape_string -- クエリパラメータ用に文字列をエスケープする
sqlite_exec -- Executes a result-less query against a given database
sqlite_factory -- Opens a SQLite database and returns a SQLiteDatabase object
sqlite_fetch_all -- Fetches all rows from a result set as an array of arrays
sqlite_fetch_array -- 結果セットから次のレコードを配列として取得する
sqlite_fetch_column_types --  Return an array of column types from a particular table
sqlite_fetch_object -- Fetches the next row from a result set as an object
sqlite_fetch_single -- Fetches the first column of a result set as a string
sqlite_fetch_string -- 結果セットから文字列として先頭カラムを取得する
sqlite_field_name -- 特定のフィールドの名前を返す
sqlite_has_more -- まだレコードがあるかないかを返す
sqlite_has_prev -- Returns whether or not a previous row is available
sqlite_key -- Returns the current row index
sqlite_last_error -- データベースに関する直近のエラーコードを返す
sqlite_last_insert_rowid -- 直近に挿入されたレコードのrowidを返す
sqlite_libencoding -- リンクされているSQLiteライブラリのエンコーディングを返す
sqlite_libversion -- リンクされているSQLiteライブラリのバージョンを返す
sqlite_next -- 次の行番号へシークする
sqlite_num_fields -- 結果セットのフィールド数を返す
sqlite_num_rows -- 結果セットのレコード数を返す
sqlite_open --  SQLiteデータベースをオープンする。データベースが存在しない場合は作 成する
sqlite_popen --  SQLiteデータベースへの持続的ハンドルをオープンする。存在しない場合 には、データベースを作成する
sqlite_prev -- Seek to the previous row number of a result set
sqlite_query -- 指定したデータベースに対してクエリを実行し、結果ハンドル を返す
sqlite_rewind -- 先頭レコード番号へシークする
sqlite_seek -- 特定のレコード番号へシークする
sqlite_single_query --  Executes a query and returns either an array for one single column or the value of the first row
sqlite_udf_decode_binary --  UDFにパラメータとして渡されたバイナリデータをデコードする
sqlite_udf_encode_binary --  UDFから返す前にバイナリデータをエンコードする
sqlite_unbuffered_query --  事前取得していないクエリを実行し、全てのデータをバッファリングする
sqlite_valid -- Returns whether more rows are available