sqlite_open
sqlite_prev
SQLite 関数
PHP Manual

# sqlite_popen

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_popen — SQLiteデータベースへの持続的ハンドルをオープンする。存在しない場合 には、データベースを作成する

### 説明

resource sqlite_popen ( string `$filename` [, int `$mode` = 0666 [, string `&$error_message` ]] )

この関数はsqlite_open()と同じように動作しますが、 PHPの持続的リソース機能を使用するところが異なります。 パラメータの意味に関する詳細については、マニュアルの sqlite_open() を参照してください。

sqlite_popen() は、まず、持続的ハンドルが指定し た`filename`に関してすでにオープンされているか どうかを調べます。みつかった場合には、スクリプトのそのハンドルを返 し、それ以外は、データベースのハンドルを新規にオープンします。

この手法の利点は、持続性のあるWebサーバ SAPI(通常のCGIまたはCLI以外 の全てのSAPI)により処理される各ページについてデータベースやインデッ クススキーマを再読み込みする性能上のコストを払うことがないことです。

> 注意: 持続的ハンドルを使用している時にデータベースが(crontab等の)バック グラウンドプロセスにより更新され、このプロセスが上書きすることによ り(消去して、再構築するか、カレントのバージョンを置換するために更 新後のバージョンを移動)データベースを再生成する場合、 古いバージョンのデータベースに関する持続的ハンドルが再利用されると いった予測できない動作を引き起こす可能性があります。 この問題を回避するために、バックグラウンドプロセスが同じデータベー スファイルをオープンするようにし、更新をトランザクションで行うよう にしてください。

### パラメータ

`filename`

  SQLite データベースのファイル名。もしこのファイルが存在しない場合、 SQLite はファイルを生成しようとします。 データを挿入したり、データベーススキーマを変更、 もしくはデータベースが存在しない場合にデータベースを生成する場合、 PHP はファイルに対する書き込み権限を持っている必要があります。

`mode`

  ファイルのモード。読み込み専用モードでデータベースをオープンするために 使用することを目的としています。現在、このパラメータは SQLite ライブラリに無視されます。このモードのデフォルト値は、 8 進数値 0666 で、これは推奨される値です。

`error_message`

  参照として渡され、エラーが発生した場合に データベースがオープンできなかった原因を説明する 記述的なエラーメッセージを保持するために設定されます。

### 返り値

成功時にリソース (データベースハンドル)、失敗時に `FALSE` を返します。

### 参考

- sqlite_open() - SQLiteデータベースをオープンする。データベースが存在しない場合は作 成する
- sqlite_close() - オープンされたSQLiteデータベースを閉じる
- sqlite_factory() - SQLite データベースをオープンし、SQLiteDatabse オブジェクトを返す

sqlite_open
sqlite_prev
SQLite 関数
PHP Manual