目次

Sqlform ドキュメント

Version 1.0 (MIT License)

y2sunlight 2020-10-20

Sqlform はブラウザ上のフォームからSQLスクリプトを実行できるツールで、スクリプトの編集、保存、呼び出し、削除ができます。テスト時、保守などで利用可能です。ログイン機能を実装していないので、運用時はhttpsにてWebサーバの認証機能を利用するか、認証機能付きのアプリケーションに組み込んでご利用下さい。

Sqlform は GitHub で公開しています。


クイックスタート

リリース版をダウンロードし、適当な場所に解凍して下さい。

ダウンロードした sqlform.phpファイルの存在するディレクトリでPHPのビルトインサーバーを実行します。

php -S localhost:8888

そして、以下のURLにアクセスしてください。

起動後には、以下のsqlスクリプトが表示されています。

SELECT 'Hello, World!' as phrase;

画面右上のプレイボタン(3つ並んだ三番目のボタン)を押すと、実行結果が表示されます。


解凍直後は、データーベースとして SQLite が選択されています。SQLiteが使用できない環境、または他のデータベースを構成したい場合は、以下の「構成」を参照して下さい。


使い方

SQLファイルの読み込みと編集

画面左上のセレクトボックスで保存済みのSQLファイルを選択しSQLを読み込むことができます。例えば、同封されている sample.sql を選択して下さい。

ここで呼び出したファイルは編集することもできます。

SQLスクリプトの仕様については、構成されているデータベースに依存しますが、コメントと拡張機能については以下の「SQLファイルの仕様」を参照して下さい。


SQLスクリプトの実行

画面右上のプレイボタン(3つ並んだ三番目のボタン)を押すと、編集済のSQLスクリプトを実行し、その結果を表示します。


SQLスクリプトの保存/削除

SQLスクリプトの保存と削除は画面右上のファイル名ボックス、保存ボタン、削除ボタンで行います。


構成

データベースの構成は、同封の config.php で行います。

config.php
...
 
/*
 * 環境設定を返す
 */
return
[
    // データベース接続先設定
    'database'=>'sqlite',
    'connections' =>
    [
        'mysql' => [
            'dsn' => 'mysql:host=localhost;port=3306;dbname=sunlight_db',
            'username' => 'sunlight',
            'password' => 'sunlight',
            'driver_options' => [PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8'],
            // 'initial_statements'=> ['set names utf8'],
        ],
        'sqlite' => [
            'dsn' => 'sqlite:'.dirname(__FILE__) . '/db/sqlform.sqlite',
            'db_file' => dirname(__FILE__) . '/db/sqlform.sqlite',
        ],
    ],
    // SQLファイル設定
    'sql_file' =>[
        'path' => dirname(__FILE__) . "/sql/{database}",
    ],
];

database は任意の名前が指定できますが、connections の中で使用する名前と一致している必要があります。connectionsには、複数のデータベースの接続を含める事ができますが、実際に使用されるのは database で指定されたものだけです。

connections

各データベースの設定値には以下の項目が含まれます。

connection_string は必須です。db_file は SQLite のようなファイル共有型のデータベースの場合に必要で、usernamepassword は MySQL のようなクライアント-サーバ型のデータベースの場合に必要になります。尚、ファイル共有型のデータベースのパスはアクセス権のある任意の場所に設定できます。

connection_stringdriver_options についてはを PHPのPDO driver-specific documentation 参照して下さい。

接続設定及び接続文字列の詳細は以下を参照して下さい:
https://idiorm.readthedocs.io/en/latest/configuration.html#id1

initial_statements はオプションで、データベースとの接続直後に実行するSQL文を設定します。このSQL文は複数指定することができます。

sql_file

SQLファイルに関する設定です。

path はアクセス権のある任意の場所に設定できます。


SQLファイルの仕様

SQLファイルにはSQL文、EVAL文、プリント文 及びコメントを含むことができます。

SQL文

sample.sql
-- テーブル作成
DROP TABLE IF EXISTS syain;
CREATE TABLE syain (
  syain_no INT(10) NOT NULL,
  syain_name VARCHAR(50),
  bumon_no INT(10),
  PRIMARY KEY (syain_no)
);
 
-- テーブルにデータを挿入
INSERT INTO syain VALUES(1,'Suzuki',3);
INSERT INTO syain VALUES(2,'Yamamoto',1);
INSERT INTO syain VALUES(3,'Tanaka',2);
 
-- テーブルの検索
SELECT * FROM syain;


EVAL文

EVAL sleep(1);
SELECT 'Hello, World!' AS phrase;

実行結果


プリント文

#1秒待って検索する;
EVAL sleep(1);
SELECT 'Hello, World!' AS phrase;

実行結果


ライセンス

Sqlformは MITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。