【くえりびるだー】
クエリビルダー とは?
最終更新:
💡 SQLの条件を、コードで組み立てる
クエリビルダーは、メソッドなどを使ってSQLを組み立てる仕組み。動的な検索条件を整理でき、値のバインドでSQLインジェクションを防ぐ助けになります。生SQLや列名の扱いには別途注意が必要です。
📌 このページのポイント
クエリビルダーって何を組み立てるの?
直接SQLを書いたら危険なの?
並べ替える列も入力値で渡せる?
列名やASC・DESCなどは通常の値と同じようにはバインドできないよ。利用者には「名前順」「登録順」など許可した選択肢を示し、コード側で決めた列名へ対応付けよう。引用符で囲めるだけでは、選んでよい列かどうかの確認にはならないんだ。
ORMと同じものなの?
どんな場面で使いやすい?
もっと詳しく知りたい人へ
rawやwhereRawを使ってはいけない?
必要な式を記述するための機能ですが、利用者の入力をそのままSQL文字列へ連結しないことが大切です。例えばKnexのrawは値と識別子のプレースホルダーを区別します。適切なバインドを使うとともに、列名や並べ替え方向などは許可した選択肢へ対応付けましょう。
まとめ:ざっくりこれだけ覚えればOK!
「クエリビルダー」って出てきたら「コードからSQLを組み立てる仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Query Builder」 = クエリ構築器
💬 Query(問い合わせ)を Build(組み立てる)ツールという意味だよ