スキーマ定義は別ファイル管理にして、読み込みたいものである。例えば、
sample.schema
create table user ( id text primary key, email text not null unique ); create table data ( id text primary key, content text not null ); create table user_data ( uid text, did text );
として、データベース sample.db にテーブルを作成するコードはこんな感じ。
... $sql=file_get_contents("sample.schema"); $db=sqlite_open("sample.db"); $result=sqlite_exec($db,$sql,$error); ...
ポイントは sqlite_query() でなくて、sqlite_exec() を使うことである。sqlite_query()も複数ステートメントを実行可能だが、返り値(結果ハンドル)を取得すると最初のステートメントしか実行されないからだ。分かりにくいな、もう。sqlite_exec()は SQL文の実行結果(成功/失敗)を返してくれる。