PHP マニュアル
前のページ |  | 次のページ

# sqlite_open

(PHP 5)

sqlite_open -- SQLiteデータベースをオープンする。データベースが存在しない場合は作 成する

## 説明

resource sqlite_open ( string filename [, int mode [, string &errmessage]])

成功した場合はリソース、エラーの場合は `FALSE` を返します。

`filename` パラメータは、データベースの名前です。 この名前は、sqliteがデータを保存するファイルへの相対または絶対パス となります。このファイルが存在しない場合、sqliteはこれを作成します。 データべーススキーマでデータを挿入または挿入したい場合はこのファイ ルへの書き込み権限が必要です。

`mode` パラメータはファイルのモードを指定し、 読み込みのみ可のモードでデータベースをオープンするために使用されます。 現在、このパラメータはsqliteライブラリにより無視されます。 modeのデフォルト値は、8進数`0666`で、 `errmessage` パラメータにアクセスする必要があ る場合に推奨されます。

`errmessage`は、参照渡しされ、エラーの場合に データベースがオープンできなかった理由を知るためのエラーメッセージ を保持するために設定されます。

例 1. sqlite_open()の例

`<?php if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { sqlite_query($db,'CREATE TABLE foo (bar varchar(10))'); sqlite_query($db,"INSERT INTO foo VALUES ('fnord')"); $result = sqlite_query($db,'select bar from foo'); var_dump(sqlite_fetch_array($result)); } else { die ($sqliteerror); } ?>`

> ティップ: Unix環境では、SQLiteはシステムコールfork()を使用するスクリプトの影 響を受け易いです。このようなスクリプトがある場合、 子プロセスを生成する前にハンドルを閉じ、子プロセスまたは親プロセス から再度オープンすることが推奨されます。 この問題に関する詳細な情報については、 `マルチスレッドおよびSQLite`という名前のセクショ ンにある SQLiteライブラリへのC言語インターフェイス を参照して下さい。

> ティップ: NFSパーティションにマウントされたSQLiteデータベースを処理すること は推奨されません。ロックに関してNFSは著しい問題があるので、 データベースを全くオープンすることさえできない可能性があります。ま た、成功した場合でも、ロックに関する動作は予測できない結果を生む可 能性があります。

> 注意: SQLiteライブラリ バージョン2.8.2以降、 コンピュータのメモリ上にのみ存在するデータベースを作成するために `filename`に`:memory:`を指定 することができます。 これは、メモリ上のデータベースは処理完了時に破棄されるため、 テンポラリな処理を行う場合には有用です。他のデータベースをロードし、 データを相互に移動したりクエリを実行したりするために `ATTACH DATABASE` SQLステートメントと組み合わせる 場合にも有用です。

> 注意: SQLite は セーフモード および open_basedir に対応しています。

sqlite_popen(), sqlite_close(), sqlite_query()も参照して下さい。

前のページ | ホーム | 次のページ
sqlite_num_rows | 上に戻る | sqlite_popen