ホーム » スタッフ » 斉藤徹 » 講義録 » データベース » SQLite3でデータベース

2015年4月
« 3月   5月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

SQLite3でデータベース

卒研でデータベースを使いたい人もいるようだけど、 MySQLとかまで完璧なのが必要なければ、SQLite を使ったほうが楽。 ただし、データ型は実質すべてtext型になるけど、簡単なアプリベースなら 支障はないはず。

<?php
   // データ保存用の sqlite-data はあらかじめ作っておく。
   //  sqlite-data の書き込み許可
   //    (手抜) $ chmod 777 sqlite-data
   //    (厳密) # chgrp sqlite-data
   //           # chmod 774 sqlite-data
   //  sqlite-data/.htaccess には"Require all denied"を書いて
   //  ディレクトリ内をWeb的にアクセス禁止にする。
   // サーバのPHPを使うと、エラーが見つからず苦労するかも
   // その時は、.htaccess ファイルに、以下の設定を記載しておく
   // "php_flag  display_errors On"
   // 説明しやすいように実行だけ関数をつくる
   function exec_command( $db , $cmd ) {
      if ( ($db->exec( $cmd )) === FALSE ) {
         print $db->lastErrorMsg() ;
      }
   }
   // データベースを作って初期データを登録
   function table_initialize( $db ) {
      exec_command( $db ,
         "create table Person(name text,phone text) ;" ) ;
      exec_command( $db ,
         "insert into Person (name,phone) values('t-saitoh','272925');" ) ;
      exec_command( $db ,
         "insert into Person (name,phone) values('tomoko'  ,'123456');" ) ;
      exec_command( $db ,
         "insert into Person (name,phone) values('mitsuki' ,'234567');" ) ;
   }
   // データベースを作る
   if ( !file_exists( "./sqlite-data/sample.db" ) ) {
      // なにも無い状態
      $db = new SQLite3( "./sqlite-data/sample.db" ) ;
      table_initialize( $db ) ;
   } else {
      // すでに作られている場合
      $db = new SQLite3( "./sqlite-data/sample.db" ) ;
   }
?>
<html>
<head>
</head>
<body>
<pre>
<?php
// 登録されているデータを全部表示
   if ( ($query = $db->query( "select * from Person" )) !== FALSE ) {
      while( $res = $query->fetchArray( SQLITE3_NUM ) ) {
         printf( "| %-10s | %-10s |\n" , $res[0] , $res[1] ) ;
      }
   }
?>
</pre>
</body>
</html>