安価なサーバーでは、PHPは使えるけれどもDB(データベース)はオプションの場合がある。
データ件数も少なく、高度な機能を必要としない場合は、txtSQLを使うのもひとつの選択だろう。
txtSQLではSELECTはもちろん、INSERT、UPDATE、DELETEも使えるから、テキストファイルベースのデータ更新プログラムの代わりに使うと、使い勝手が良い。
機能と速度に制約はあるが、その分導入は簡単だから試してみるのも良いだろう。
ダウンロードはこちら
http://sourceforge.net/projects/txtsql/
圧縮ファイルを展開すると
txtSQL.class.php txtSQL.core.php
の他に、
examples他のフォルダがあり、この中に、phpMyAdminに似たプログラムtxtSQLAdminが含まれている。
フォルダごとサーバーにアップしてexamplesフォルダ内にあるtxtSQLAdminにアクセスする
〜/txtSQL/examples/txtSQLAdmin/index.php
初期パスワードは
Username: root
Password: 空欄
phpMyAdminを使ったことのある人なら、任意のデータベースを作成し、任意のテーブルを作成するまでは簡単。
もちろん、データの挿入も可能。
ここでは
/data/ index.php txtSQL.class.php txtSQL.core.php
という階層構造
データベース名:dbname
ログインID:usr
ログインパスワード:pass
テーブル名は:list_tbl
list_tblの中身は以下
1 Jose Ramon Torrent de l'Olla 57 934856890 2 Antonio Via Augusta 6 932124739 3 Aurora Via Augusta 6 932124740 4 Anun Corcega 46 915485312 5 Juanma Pl. Menorca 4 977982962 6 Joan Palafrugell 100 973958200 7 Jimena Republica Argentina 36 932110120
という内容として説明する
データベースに接続
$sqlPath = '.'; $sqlData = 'data'; $sqlUser = 'usr'; $sqlPass = 'pass'; $sqlDB = 'dbname'; define('TXTSQL_CORE_PATH', $sqlPath); require_once(TXTSQL_CORE_PATH.'/txtSQL.class.php'); $sql = new txtSQL($sqlData); $sql->strict(0); $sql->connect($sqlUser, $sqlPass); $sql->selectdb($sqlDB);
解説
index.phpと同ディレクトリ内にあるtxtSQL.class.php txtSQL.core.phpを使い
dataフォルダにあるdbnameという名称のデータベースに
usrというユーザー名とpassというパスワードにて接続
データ取得
接続に成功したら、次はデータの取得
txtSQLではwhereの他に、orderbyやlimitもサポートされている。
1. データベース名とテーブル名のみを指定すればデータが取得出来る
$sql->select(array('db' => '20140407','table' => 'list_tbl'));
2. orderbyを付加すると並び順を指定出来る
$sql->select(array('db' => '20140407','table' => 'list_tbl','orderby' => array('id','desc')));
3. limitを付加すると取得するレコードを指定出来る
$sql->select(array('db' => '20140407','table' => 'list_tbl','limit' => array('1','3')));
4. whereを付加すると条件を指定出来る
$sql->select(array('db' => '20140407','table' => 'list_tbl','where' => array('tel <= 10')));
サンプルデータ
表示用にテーブルタグを挿入している
<?php $sqlPath = '.'; $sqlData = 'data'; $sqlUser = 'root'; $sqlPass = 'dorei'; $sqlDB = '20140407'; define('TXTSQL_CORE_PATH', $sqlPath); require_once(TXTSQL_CORE_PATH.'/txtSQL.class.php'); $sql = new txtSQL($sqlData); $sql->strict(0); $sql->connect($sqlUser, $sqlPass); $sql->selectdb($sqlDB); #---------------------------------------------------------------------------- #データベース名とテーブル名のみを指定すればデータが取得出来る $result1 = format($sql->select(array('db' => '20140407','table' => 'list_tbl'))); #'orderby' => array('id','desc')を付加すると並び順を指定出来る $result2 = format($sql->select(array('db' => '20140407','table' => 'list_tbl','orderby' => array('id','desc')))); #'limit' => array('1','3')を付加すると取得するレコードを指定出来る $result3 = format($sql->select(array('db' => '20140407','table' => 'list_tbl','limit' => array('1','3')))); #'where' => array('tel <= 10')を付加すると条件を指定出来る $result4 = format($sql->select(array('db' => '20140407','table' => 'list_tbl','where' => array('tel <= 10')))); #---------------------------------------------------------------------------- function format($arr){ $result = "<table>\r"; $result .= "<tr><td>ID</td><td>LOGIN</td><td>PASSWORD</td><td>TEL</td><td>FAX</td></tr>\r"; foreach( $arr as $col){ $result .= "<tr>"; $result .= "<td>{$col['id']}</td>"; $result .= "<td>{$col['login']}</td>"; $result .= "<td>{$col['passwd']}</td>"; $result .= "<td>{$col['tel']}</td>"; $result .= "<td>{$col['fax']}</td>"; $result .= "</tr>\r"; } $result .= "</table>\r"; return $result; } #---------------------------------------------------------------------------- ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title></title> <style> h2 { margin-bottom:1px; font-weight:normal; font-size:1em; } table { border-collapse: collapse; } table td { padding:2px 8px; text-align:center; border:1px solid #ccc; } </style> </head> <body> <h2>select * from list_tbl</h2> <?= $result1 ?> <h2>select passwd from list_tbl orderby id desc</h2> <?= $result2 ?> <h2>select passwd from list_tbl limit 1,3</h2> <?= $result3 ?> <h2>select passwd from list_tbl where tel <= 10</h2> <?= $result4 ?> </body> </html>