(4) 初めてのSQLite(基本的な使い方)

投稿者: | 2016年10月22日

この記事は最終更新から 778日 が経過しています。

やってみたいこと

簡易データベースとしてSQLiteはとっても便利です。
ここではPHPからSQLiteを使って以下のことをやってみます。
(1) データベース作成
(2) データベース上にテーブル作成
(3) データベース上のテーブルへのデータ登録
(4) データベース上のテーブルからデータ参照

プログラム作成

今回作成するプログラムの仕様は以下の通り。
・SQLiteで作成したデータベース(以下DB)に、人名と登録日時を保存する。
・人名はWEBブラウザの引数 name で指定する。
・SQLiteの DBファイル名は mydb.db とする。
・登録完了後、新規登録した名前に自動付与されたIDを表示する。
・登録完了後、既存の全登録済みデータを表示する。

<!DOCTYPE html>
<HTML>
<HEAD>
<META CHARSET="UTF-8" />
<TITLE>SQLiteサンプル</TITLE>
</HEAD>
</BODY>

<?php
  $db_file_path = "mydb.db";    // SQLite DBファイル名

  // 引数から新規登録名を取得
  $name = $_GET['name'];

  // DBファイル存在確認
  $isDbExist = file_exists($db_file_path);

  // DBオープン
  $db = new SQLite3($db_file_path);

  // DBは新規作成?
  if($isDbExist === FALSE){
    // テーブル作成 (ID, 名前, 登録日時)
    $db->exec("CREATE TABLE mytbl (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, register DATETIME);");
  }

  // 引数で指定された名前を新規登録
  $dateTime = strftime(time());
  $db->exec("INSERT INTO `mytbl` (name,register) VALUES('$name', '$dateTime');");

  // 新規登録した名前に自動付与されたIDを表示
  echo "New ID = ".$db->lastInsertRowID()."<br />";

  // 既存の登録データを一覧表示
  $result = $db->query("SELECT * FROM `mytbl`;");
  while ($row = $result->fetchArray()) {
      echo "<hr />";
      var_dump($row);
  }
  // DBクローズ
  $db->close();
?>

</BODY>
</HTML>

 
実行サンプルはこちらです。
http://www.dogrow.net/php/sample/00004/?name=Jonny

データベースの削除方法は?

SQLiteではDBファイルを削除すればOKです。
すなわち、PHPプログラム中では以下のように書けばよいです。

  unlink( "ファイル名" );

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)