SQL パラメータバインディング確認ツール
SQL 内のプレースホルダ(?、:id、@username)に値をエスケープして埋め込みます
位置指定(?)または名前付き(:id、@username)のプレースホルダを含む SQL に対して、パラメータの値を順番や名前に合わせてエスケープ処理しながら埋め込み、完成した SQL 文を組み立てるツールです。ログに出力されたクエリの再現やデバッグに便利です。
도구를 불러오는 중…
🔒 すべてブラウザ内で処理されます。アップロードしたファイルや入力内容がサーバーに送信されることはありません。
使い方
- 使用しているデータベースの種類(MySQL/PostgreSQL/SQLite)を選びます。
- パラメータの入力形式(順序リスト、key=value 形式、JSON)のいずれかを選び、値を入力します。
- プレースホルダを含む元の SQL 文を入力欄に貼り付けます。
- 下の結果欄で、クォートのエスケープが適用された最終的な SQL を確認してコピーします。
よくある質問
- 文字列の途中にある ? も置き換えられてしまいますか?
- いいえ。文字列リテラル('...')の内部や行コメント(--)、ブロックコメント(/* */)の範囲は正しく読み飛ばす1文字ずつのトークナイザを備えているため、クエリが壊れることはありません。
- SQL インジェクション対策として使えますか?
- 本ツールはあくまで文字列を組み立てるシミュレーターです。実運用のアプリケーションでは、性能と安全性の両面から、必ず PreparedStatement とデータベース側のネイティブなバインディング機構を使ってください。
- 配列の値をIN句のパラメータとしてバインドできますか?
- はい。JSON入力モードで値に配列を指定すると、要素数に応じてIN (?, ?, ?)のようにプレースホルダーが自動的に展開され、各値が個別にエスケープ処理されて挿入されます。ただし実際のサーバーコードでは、使用するデータベースドライバが配列バインディングに対応しているかを別途確認する必要があります。
