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を読み込むことができます。例えば、同封されている sample.sql
を選択して下さい。
ここで呼び出したファイルは編集することもできます。
SQLスクリプトの仕様については、構成されているデータベースに依存しますが、コメントと拡張機能については以下の「SQLファイルの仕様」を参照して下さい。
画面右上のプレイボタン(3つ並んだ三番目のボタン)を押すと、編集済のSQLスクリプトを実行し、その結果を表示します。
SQLスクリプトの保存と削除は画面右上のファイル名ボックス、保存ボタン、削除ボタンで行います。
データベースの構成は、同封の 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}", ], ];
sqlite
)
database
は任意の名前が指定できますが、connections
の中で使用する名前と一致している必要があります。connections
には、複数のデータベースの接続を含める事ができますが、実際に使用されるのは database
で指定されたものだけです。
各データベースの設定値には以下の項目が含まれます。
connection_string
は必須です。db_file
は SQLite のようなファイル共有型のデータベースの場合に必要で、username
と password
は MySQL のようなクライアント-サーバ型のデータベースの場合に必要になります。尚、ファイル共有型のデータベースのパスはアクセス権のある任意の場所に設定できます。
connection_string
と driver_options
についてはを PHPのPDO driver-specific documentation 参照して下さい。
接続設定及び接続文字列の詳細は以下を参照して下さい:
https://idiorm.readthedocs.io/en/latest/configuration.html#id1
initial_statements
はオプションで、データベースとの接続直後に実行するSQL文を設定します。このSQL文は複数指定することができます。
SQLファイルに関する設定です。
path
はアクセス権のある任意の場所に設定できます。
SQLファイルにはSQL文、EVAL文、プリント文 及びコメントを含むことができます。
;
)で区切って複数入力できます。– Comment
)とブロックコメント( /* Comment */
)の両方が使用できます。-- テーブル作成 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 sleep(1); SELECT 'Hello, World!' AS phrase;
eval('sleep(1)');
実行結果
#1秒待って検索する; EVAL sleep(1); SELECT 'Hello, World!' AS phrase;
#
で始まる文で、2文字目以降がプリントされます。#;
を入力します。実行結果