English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP 5.3.0 からデフォルトで SQLite が有効になります。3 エクステンション。コンパイル時に使用できます。 --without-sqlite3 SQLite を無効にしてください。3 エクステンションを有効にする必要があります。
Windows ユーザーは php_sqlite3.dll がこのエクステンションを使用できるようになります。PHP 5.3.0 から、この DLL は PHP の Windows ディストリビューションに含まれています。
詳細なインストールガイドラインについては、私たちの PHP チュートリアルとその公式ウェブサイトを確認してください。
以下は重要な PHP プログラムであり、PHP プログラムで SQLite データベースを使用する際の要件を満たすことができます。詳細について知りたい場合は、PHP 公式ドキュメントを確認してください。
番号 | API & 説明 |
---|---|
1 | public void SQLite3::open ( filename, flags, encryption_key ) SQLite 3 データベースを開く際に、暗号化が含まれている場合、それを使用するためにキーを試みます。 ファイル名が filename に割り当てられます。 ':memory:'の場合、SQLite3::open() は RAM でメモリデータベースを作成し、セッションの有効期間中のみ持続します。 ファイル名 filename が実際のデバイスファイル名の場合、SQLite3::open() はこのパラメータ値を使用してデータベースファイルを開きます。その名前のファイルが存在しない場合、新しいデータベースファイルとしてその名前のデータベースが作成されます。 SQLite データベースを開くかどうかを判断するために使用されるオプションのフラグです。デフォルトでは、SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE でオープンされます。 |
2 | public bool SQLite3::exec ( string $query ) この手順は、SQL コマンドを実行する簡単な方法を提供し、sql パラメータによって提供される SQL コマンドを一つまたは複数に設定できます。このプログラムは、指定されたデータベースに対する結果がないクエリを実行するために使用されます。 |
3 | public SQLite3Result SQLite3::query ( string $query ) この手順は SQL クエリを実行し、結果が返される場合は、 SQLite3Result オブジェクト。 |
4 | public int SQLite3::lastErrorCode ( void ) この手順は、最後に失敗した SQLite リクエストの数値結果コードを返します。 |
5 | public string SQLite3::lastErrorMsg ( void ) この手順は、最後に失敗した SQLite リクエストの英語のテキスト記述を返します。 |
6 | public int SQLite3::changes ( void ) この手順は、最後に更新、挿入、または削除されたデータベースの行数を返します。 |
7 | public bool SQLite3::close ( void ) このルーチンは、SQLiteを閉じます。3::open() オープンしたデータベース接続。 |
8 | public string SQLite3::escapeString ( string $value ) このルーチンは、SQL文の中でセキュリティのために適切にエスケープされた文字列を返します。 |
以下のPHPコードは、既存のデータベースに接続する方法を示しています。データベースが存在しない場合、それが作成され、最終的にデータベースオブジェクトが返されます。
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } ?>
今、上記のプログラムを実行し、現在のディレクトリにデータベースを作成しましょう test.db。必要に応じてパスを変更してください。データベースが正常に作成された場合、以下のメッセージが表示されます:
データベースを正常にオープンしました
以下のPHPコードセグメントは、先に作成されたデータベースにテーブルを作成するために使用されます:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } $sql =<<<EOF CREATE TABLE COMPANY (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL); EOF; $ret = $db->exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo "テーブルが正常に作成されました\n"; } $db->close(); ?>
上記のプログラムを実行すると、以下の場所に test.db test.dbにCOMPANYテーブルを作成し、以下のメッセージが表示されます:
データベースが正常にオープンしました テーブルが正常に作成されました
以下のPHPプログラムは、上記で作成されたCOMPANYテーブルにレコードを作成する方法を示しています:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } $sql =<<<EOF INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); EOF; $ret = $db->exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo "レコードが正常に作成されました\n"; } $db->close(); ?>
上記のプログラムを実行すると、COMPANYテーブルに指定されたレコードが作成され、以下の2行が表示されます:
データベースが正常にオープンしました レコードが正常に作成されました
以下のPHPプログラムは、前面で作成したCOMPANYテーブルからレコードを取得して表示する方法を示しています:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = $db->query($sql); while($row = $ret->fetchArray(SQLITE3_ASSOC) ){ echo "ID = ". $row['ID'] . "\n"; echo "NAME = ". $row['NAME'] ."\n"; echo "ADDRESS = ". $row['ADDRESS'] ."\n"; echo "SALARY = ". $row['SALARY'] ."\n\n"; } echo "操作が正常に完了しました\n"; $db->close(); ?>
このプログラムを実行すると、以下の結果が生成されます:
データベースが正常にオープンしました ID = 1 NAME = Paul ADDRESS = California SALARY = 20000 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 操作が正常に完了しました
以下のPHPコードは、UPDATE文を使用して任意のレコードを更新し、COMPANYテーブルから更新されたレコードを取得して表示する方法を示しています:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } $sql =<<<EOF UPDATE COMPANY set SALARY = 25000.00 where ID=1; EOF; $ret = $db->exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo $db->changes(), "レコードが正常に更新されました\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = $db->query($sql); while($row = $ret->fetchArray(SQLITE3_ASSOC) ){ echo "ID = ". $row['ID'] . "\n"; echo "NAME = ". $row['NAME'] ."\n"; echo "ADDRESS = ". $row['ADDRESS'] ."\n"; echo "SALARY = ". $row['SALARY'] ."\n\n"; } echo "操作が正常に完了しました\n"; $db->close(); ?>
このプログラムを実行すると、以下の結果が生成されます:
データベースが正常にオープンしました 1 レコードが正常に更新されました ID = 1 NAME = Paul ADDRESS = California SALARY = 25000 ID = 2 NAME = Allen ADDRESS = Texas SALARY = 15000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 操作が正常に完了しました
以下のPHPコードは、DELETE文を使用して任意のレコードを削除し、COMPANYテーブルから残りのレコードを取得して表示する方法を示しています:
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "データベースが正常にオープンされました\n"; } $sql =<<<EOF DELETE from COMPANY where ID=2; EOF; $ret = $db->exec($sql); if(!$ret){ echo $db->lastErrorMsg(); } else { echo $db->changes(), "レコードが正常に削除されました\n"; } $sql =<<<EOF SELECT * from COMPANY; EOF; $ret = $db->query($sql); while($row = $ret->fetchArray(SQLITE3_ASSOC) ){ echo "ID = ". $row['ID'] . "\n"; echo "NAME = ". $row['NAME'] ."\n"; echo "ADDRESS = ". $row['ADDRESS'] ."\n"; echo "SALARY = ". $row['SALARY'] ."\n\n"; } echo "操作が正常に完了しました\n"; $db->close(); ?>
このプログラムを実行すると、以下の結果が生成されます:
データベースが正常にオープンしました 1 レコードが正常に削除されました ID = 1 NAME = Paul ADDRESS = California SALARY = 25000 ID = 3 NAME = Teddy ADDRESS = Norway SALARY = 20000 ID = 4 NAME = Mark ADDRESS = Rich-Mond SALARY = 65000 操作が正常に完了しました