PHP: SQLite3への接続からinsert、select、切断までのまとめ

PHPでSQLite3を操作する方法をまとめて紹介します。 SQLite3への接続からテーブル作成、データのインサート insert、 データ検索、削除、切断までです。

SQLite3へ接続

PHPでSQLite3へ接続する場合は「new SQLite3()」でファイル名を指定するだけです。
指定したファイルが存在しない場合は、 自動的に作成されます。

もしPHP7を使っていて、接続時に「SQLite3が利用できない」等のエラーが発生する場合は、 「php.ini」ファイルを変更する必要があります。

// db接続
$db = new SQLite3("test.sqlite3");

...

// 切断
$db->close();

接続と切断はワンセットなので、切断も記述しておきます。

CREATE TABLE: テーブル作成

「社員」テーブルとして、 次のような社員番号、名前、入社年が入ったテーブルを作成します。

idnameyear
1田中2000
2鈴木2001
3佐藤2002
4山本2003
5大田2004

ここではCREATE TABLEでテーブルを作成。

文が長くなる場合は、 下のようにヒアドキュメントを利用して文を書いた方が見やすくなります。

// ヒアドキュメントを利用してテーブルを作成
// テーブル名 employee: 社員テーブル
// カラム id: 社員id、name: 名前、year: 入社年

$sql = <<<EOT
CREATE TABLE IF NOT EXISTS employee(
id integer primary key,
name text,
year text
)
EOT;

// 実行
$db->exec($sql);

INSERT: インサート

データをインサートします。

// Insert データ挿入
$db->query("INSERT INTO employee VALUES (1, '田中', '2000')");
$db->query("INSERT INTO employee VALUES (2, '鈴木', '2001')");
$db->query("INSERT INTO employee VALUES (3, '佐藤', '2002')");
$db->query("INSERT INTO employee VALUES (4, '山本', '2003')");
$db->query("INSERT INTO employee VALUES (5, '大田', '2004')");

SELECT: 検索

データを検索します。 「複数行・複数列」の場合と、 「単一行・単一列」の場合に分けて紹介します。

複数行・複数列の検索

$result = $db->query('SELECT * FROM employee');
while ($cols = $result->fetchArray()) { 
	echo $cols[0] . "\t";
	echo $cols[1] . "\t"; 
	echo $cols[2] . "\n";
}

単一行・単一列の検索

$sql = $db->querySingle("SELECT name FROM employee WHERE id=1");
echo $sql . "\n";  // "田中"

DELETE: 削除

データをテーブルから削除します。

// delete 削除
$db->query("DELETE FROM employee");

切断

切断も忘れないようにしてください。

// 切断
$db->close();

PHP