P粉8832233282023-08-24 15:43:16
MySQL ステートメントに PHP 変数を追加するためのルールはシンプルで簡単です:
###1。プリペアドステートメントを使用するSQL データ リテラル (または単に SQL 文字列または数値) を表す変数は、準備されたステートメントを介して追加する必要があります。 ###例外なく###。 この方法には 4 つの基本的な手順が含まれます
SQL ステートメント内のすべての変数を
プレースホルダーデータテキストを追加
リーリー
古いバージョンの PHP を使用している場合は、準備/バインド/実行を明示的に行う必要があります: コードは少し複雑ですが、これらすべての演算子の詳細な説明は、私の記事
Mysqli を使用して INSERT クエリを実行する方法と、プロセスを大幅に簡素化するソリューションにあります。
SELECT クエリの場合は、上記と同じ方法を使用できます: リーリー ただし、古いバージョンの PHP を使用している場合は、準備/バインド/実行ルーチンを実行し、使い慣れた
mysqli_result を取得するためにget_result()
メソッドへの呼び出しを追加する必要があります。 通常の方法でデータを取得できます:
リーリー
PDO を使用してデータ テキストを追加する< code>
リーリー
PDO ではバインド部分と実行部分を組み合わせることができ、非常に便利です。 PDO は名前付きプレースホルダーもサポートしており、これが非常に便利だと考える人もいます。
ホワイトリスト
によってフィルタリングする必要があります。この場合、変数は、スクリプトに記述された値のリスト 明示的に
と照合する必要があります。私の他の記事ユーザーの選択に基づいて ORDER BY 句にフィールド名を追加する
では、次のことについて説明しています:これは例です: リーリー リーリー このようなコードの後は、$direction
変数と$orderby
変数の両方を安全に SQL クエリに入れることができます。これらは、許可されているバリアントの 1 つと等しいか、または次のいずれかになるためです。エラーがスローされます。
識別子について最後に述べておきたいのは、識別子も特定のデータベース構文に従ってフォーマットする必要があるということです。 MySQL の場合は、識別子の前後に
バッククォート 文字を付ける必要があります。したがって、注文例の最終的なクエリ文字列は
になります。
リーリー