非技術者向けSQLクエリツールの構築方法:PHPでゼロ依存の簡易ツールを実装

背景と課題

業務において、マーケティング担当者や管理職が頻繁にデータ照会を依頼してくるケースがあります。簡単なSQL文で解決できる問題でも、相手がSQLを学ばず、データベースクライアントの導入を拒否するため、開発作業が中断される状況が発生します。

要件定義

  • SQL未経験者でも直感的な操作が可能
  • クライアントアプリケーション不要のブラウザベース
  • 開発環境に影響を与えない軽量設計
  • Excel形式でのデータエクスポート機能

技術的解決策

PHPの組み込みWebサーバー機能を使用し、単一ファイルで動作するツールを構築しました。

php -S 0.0.0.0:8000

上記コマンドで即時起動可能。設定ファイルを用いたSQLテンプレート駆動型の仕組みを採用しています。

構成ファイル仕様

JSON形式の設定ファイルによりクエリテンプレートを管理します。

{
  "queries": [
    {
      "title": "アクティブユーザ一覧",
      "statement": "SELECT id as ユーザID, name as 氏名, created as 登録日 FROM users WHERE status = 1 AND {{date_filter}}",
      "parameters": {
        "date_filter": {
          "type": "date",
          "label": "登録日フィルタ"
        }
      }
    },
    {
      "title": "注文ステータス照会",
      "statement": "SELECT order_id, customer, amount FROM orders WHERE status = {{status_code}}",
      "parameters": {
        "status_code": {
          "type": "select",
          "options": [
            {"value": "1", "label": "処理中"},
            {"value": "2", "label": "完了"},
            {"value": "3", "label": "キャンセル"}
          ],
          "description": "注文状況を選択"
        }
      }
    }
  ]
}

実装のポイント

  • プレースホルダ形式(例:{{status_code}})で動的パラメータを処理
  • 入力検証モジュールを組み込みSQLインジェクション対策
  • CSV形式でのデータダウンロード機能
  • レスポンシブデザインによるモバイル対応

導入手順

  1. リポジトリのクローン
    git clone https://github.com/example/data-query-tool.git
  2. 作業ディレクトリへ移動
    cd data-query-tool
  3. 開発用サーバー起動
    php -S 0.0.0.0:8000
  4. ブラウザでアクセス
    http://サーバーIP:8000

運用例

  1. テンプレート選択画面から「注文ステータス照会」を選択
  2. ドロップダウンからステータスを選択
  3. 「クエリ実行」ボタンで結果表示
  4. 「CSV出力」ボタンでデータ保存

セキュリティ対策

  • IPアクセス制限による内網専用設定
  • クエリのホワイトリスト管理
  • 実行権限の最小化(読み取り専用ユーザ)

タグ: PHP SQL データベース ツール開発 簡易アプリ

7月14日 16:52 投稿