Authentication




Cancel OK
B!コメントする  2012-05-15 23:58:00 by old

SQLite3のデータを表示させる

最近SQLiteを触ることが多いけど中身をネット上で確かめられるものがあまり無かったので見るだけのものをとりあえず作ってみた。

特定のフォルダにあるすべてのSQLファイルの中身の一覧を表示します

/
* SQLiteデータ置き場
*/
$dir = "./application/db/";

/

* ディレクトリ内ファイル名取得
/
$opendir = opendir( $dir );
while( $file = readdir($open
dir) )
{
$rowcolum = "";
$colum
name = array();
$data = "";
$bc = "";

if( !preg_match("/..|.$/i", $file, $match) )
{
/

* テーブル名取得
/
$conn = new PDO("sqlite:" . $dir . "" . $file);
$sql = "SELECT * FROM sqlite_master WHERE type='table' order by name ";
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
/

* テーブルカラム取得
* テーブル名 : $row['tblname']
*/
$conn = new PDO("sqlite:" . $dir . "" . $file);
$sql = "PRAGMA table
info('" . $row['tblname'] . "')";
$stmt = $conn->prepare($sql);
$stmt->execute();

echo $file . " - " . $row['tbl
name'] . "<br />\n";
echo "<table>\n";
echo "<tr style=\"background: #666666; color: #ffffff;\">\n";
while($rowcolum = $stmt->fetch())
{
/*
* カラム名出力 + カラム名取得
*/
echo "<th>" . $row
colum['name'] . "</th>";
$columname[] = $rowcolum['name'];
}
echo "</tr>\n";

/
* テーブル内データ取得
*/
$sql = "SELECT * FROM " . $row['tbl_name'] . "";
$stmt = $conn->prepare($sql);
$stmt->execute();

while($data = $stmt->fetch())
{
/

* 背景色指定
/
$background = "";
if( $bc % 2 == 0 )
{
$background = " style=\"background: #a9a9a9\"";
}
if( $data != null )
{
/

* 1レコード出力
*/
echo "<tr$background>";
for($i = 0; $i < count($colum_name); $i++ )
{
echo "<td>" . $data[$colum_name[$i]] . "</td>";
}
echo "</tr>\n";
}
$bc++;
}
echo "</table>\n";
echo "<hr>\n";
}
}
closedir( $open_dir );


SQLファイルのあるディレクトリを指定してやると、そのフォルダにあるSQLファイルの中身を全部一覧表示します。

あとで中身の編集とか追加も出来るように拡張する予定です。


SQL  

  • コメント
  • コメントはまだありません