メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
sqlform:usage:jaSqlform ドキュメント
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スクリプトの保存と削除は画面右上のファイル名ボックス、保存ボタン、削除ボタンで行います。
- ファイル名ボックス — 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— データベース名 (初期設定値は
sqlite
) - connections — データベース毎の接続を設定します
- sql_file — SQLファイルに関する設定を行います
database
は任意の名前が指定できますが、connections
の中で使用する名前と一致している必要があります。connections
には、複数のデータベースの接続を含める事ができますが、実際に使用されるのはdatabase
で指定されたものだけです。connections
各データベースの設定値には以下の項目が含まれます。
- connection_string — 接続文字列
- db_file — データベースファイルのパス (初期設定値は db/sqlform.sqlite)
- username — データベースのユーザ名
- password — ユーザのパスワード
- driver_options — データベースドライバー毎のオプション
- initial_statements — 接続直後に実行する初期化SQL文
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#id1initial_statements
はオプションで、データベースとの接続直後に実行するSQL文を設定します。このSQL文は複数指定することができます。sql_file
SQLファイルに関する設定です。
- path — SQLファイルを保存するパス
path
はアクセス権のある任意の場所に設定できます。
SQLファイルの仕様
SQLファイルにはSQL文、EVAL文、プリント文 及びコメントを含むことができます。
- 文はセミコロン(
;
)で区切って複数入力できます。 - 連続する空白( TAB, Space, 改行文字 )は1つの空白と同じにみなされます。
- 行コメント(
– Comment
)とブロックコメント(/* Comment */
)の両方が使用できます。
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;
- SQL文は構成されているデータベースに依存します。各データベースのマニュアルを参照して下さい。
- SQLite — SQLite SQL言語マニュアル(本家)
- MariaDB — MariaDB マニュアル言語(本家)
- MySQL5.7 — MySQL5.7 マニュアル言語(本家)
EVAL文
EVAL sleep(1); SELECT 'Hello, World!' AS phrase;
- EVAL文はPHPのeval関数で実行します。上例では:
eval('sleep(1)');
- 複文の実行はできません。
実行結果
プリント文
#1秒待って検索する; EVAL sleep(1); SELECT 'Hello, World!' AS phrase;
- プリント文は文頭が
#
で始まる文で、2文字目以降がプリントされます。 - 改行だけを出力したい場合は
#;
を入力します。
実行結果
ライセンス
sqlform/usage/ja.txt · 最終更新: 2020/10/23 17:46 by y2sunlight
コメント