SQLの窓

2014年04月01日


PHP : 5.3(以上) / 5.2.11 で sqlite3 作成

概要

PHP 5.3 から、SQLite3 クラスが使用できます。それ以前では、PDO で、SQLLite3 を扱う事ができます。

▼ PHP Version 5.2.17


SQLite3 の空ファイルは、接続しただけでは作成されず、ダミーでテーブルを作成して削除した後に VACUUM を実行しています。

▼ dl 関数を使うのは今時では無いので、php.ini できちんと指定します。( extension=php_mysql.dll と extension=php_pdo_sqlite.dll )
あと、きちんと検証していませんが、dl 関数の扱いが厳密になっているようで、マルチスレッド Web サーバ上では サポートされないそうです。※ Call to undefined function dl() となってしまいました / cli では機能するので、条件を加えています

▼ 実際は 1024 バイトになりますが、残りは 0x00 です。
          0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
--------------------------------------------------------------------------
00000000 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00  SQLite format 3.
00000010 04 00 01 01 00 40 20 20 00 00 00 03 00 00 00 01  .....@  ........
00000020 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00  ................
00000030 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00  ................
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03  ................
00000060 00 2D E2 1F 0D 00 00 00 00 04 00 00 00 00 00 00  .-・............
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
※ 最初の16バイトは、仕様としては固定です
<?
// **********************************************************
// PHP 5.3 / 5.2.11 用 sqlite3 作成
// **********************************************************

if ( PHP_SAPI == 'cgi' ) {
	$strDB1 = realpath("./newdb.sqlite3" );
	$strDB2 = realpath("./newdb.sqlite3_pdo" );
}
else {
	$strDB1 = getcwd()."/newdb.sqlite3";
	$strDB2 = getcwd()."/newdb.sqlite3_pdo";
}

// **********************************************************
// 処理
// www.php.net/manual/ja/sqlite3.construct.php
// www.php.net/manual/ja/ref.pdo-sqlite.connection.php( PDO )
// **********************************************************

$Cn = new SQLite3( $strDB1, SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE );
$Cn->exec('CREATE TABLE bar (bar STRING)');
$Cn->exec('DROP TABLE bar');
$Cn->exec('VACUUM');
$Cn->close();

$Cn = new PDO( "sqlite:{$strDB2}" );
$Cn->exec('CREATE TABLE bar (bar STRING)');
$Cn->exec('DROP TABLE bar');
$Cn->exec('VACUUM');
$Cn = null;	// close


?>
処理が終了しました

関連するリンク

Query Language Understood by SQLite
Datatypes In SQLite Version 3

関連する記事

タグ:PHP sqlite3
【PHP + データベースの最新記事】
posted by lightbox at 2014-04-01 15:56 | PHP + データベース | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり