卒研でデータベースを使いたい人もいるようだけど、 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>