0

データベース内のデータをソートしてユーザーに提示するために、MySQL クエリを実行する基本的な php ベースの関数を開発しています。一般的なステートメントとして、単純に静的クエリを作成して必要に応じて実行すること、または条件に基づいて MySQL ステートメントの要素を単につなぎ合わせることがベスト プラクティスと見なされますか?

質問を絞り込むために、具体的な例があります。

ユーザー側で検索を定義するいくつかのドロップダウン メニューがあるとします。1 つのドロップダウンに単純に名前のリスト (たとえば、Bob Smith など) を含め、他の 2 つのドロップダウンに日付範囲を含めます。そこから、次の行に沿って簡単に検索を作成できますSELECT item FROM checkOUT WHERE...。3 つのパラメーターすべてが存在する場合に実行されるパラメーターを使用して、一般的なクエリを間違いなく作成できます。個人に関係なく日付範囲のみが選択されている場合を考えてみましょう。これには、2 つのパラメーターと別の一般的なクエリのみが必要です。また、データが複数のテーブルに分散している場合はどうなるでしょうか? それは考慮に入れなければなりません。私の関数は元のユーザー入力ではなく、ドロップダウンメニューに基づいていることも追加する必要があります。

基本的に、MySQL クエリを作成する最良の方法は何ですか?準備されたステートメントまたは動的に作成されたステートメント? 明らかに、最終結果は 2 つのハイブリッドに依存しますが、どちら側に最も傾いているかが問題です。1 つのソースから複数のクエリを処理するこの特定の側面にあまり慣れていないため、この質問をしています。通常、必要なものを取得して操作するには、並べ替えではなく、1 つのクエリを実行するだけです。

どんな洞察も高く評価されます。

4

1 に答える 1

0

私は通常、$where変数と$order変数を作成し、ページからのフィルター入力に基づいてそれらを作成します。次に、それをベースの$sql変数に追加して実行します。私にとってはうまくいくようです。ただし、クエリを実行する前に、ユーザーからの厄介な入力をエスケープすることを忘れないでください。

于 2012-11-05T22:09:14.167 に答える