MySQL ステートメントに PHP 変数を含める方法
P粉738248522
P粉738248522 2023-08-23 21:12:18
0
2
529
<p>目次に値を挿入しようとしています。 VALUES に PHP 変数がない場合は、正常に動作します。変数 <code>$type</code> を <code>VALUES</code> に入れると、これは機能しません。私が何を間違えたのでしょうか? </p> <pre class="brush:php;toolbar:false;">$type = 'テスト'; mysql_query("INSERT INTO コンテンツ (タイプ、レポーター、説明) VALUES($type, 'john', 'whatever')");</pre> <p><br /></p>
P粉738248522
P粉738248522

全員に返信(2)
P粉949848849

SQL インジェクションを回避するには、be を使用してステートメントを挿入します

リーリー
いいねを押す +0
P粉883223328

MySQL ステートメントに PHP 変数を追加するためのルールはシンプルで簡単です:

###1。プリペアドステートメントを使用する

このルールは、クエリ、特にあなたのクエリの 99% をカバーします。

SQL データ リテラル (または単に SQL 文字列または数値) を表す変数は、準備されたステートメントを介して追加する必要があります。 ###例外なく###。 この方法には 4 つの基本的な手順が含まれます

SQL ステートメント内のすべての変数を

プレースホルダー
  • に置き換えます。 準備
  • 結果クエリ
  • 変数をプレースホルダーにバインド
  • 実行クエリ
  • 一般的なすべての PHP データベース ドライバーを使用してこれを行う方法は次のとおりです:
  • 使用
mysqli

データテキストを追加

現在の PHP バージョンでは、1 回の呼び出しで準備/バインド/実行が可能です: リーリー 古いバージョンの PHP を使用している場合は、準備/バインド/実行を明示的に行う必要があります:
リーリー

コードは少し複雑ですが、これらすべての演算子の詳細な説明は、私の記事

Mysqli を使用して INSERT クエリを実行する方法

と、プロセスを大幅に簡素化するソリューションにあります。

SELECT クエリの場合は、上記と同じ方法を使用できます: リーリー ただし、古いバージョンの PHP を使用している場合は、準備/バインド/実行ルーチンを実行し、使い慣れた

mysqli_result を取得するために

get_result()

メソッドへの呼び出しを追加する必要があります。

通常の方法でデータを取得できます: リーリー PDO を使用してデータ テキストを追加する リーリー PDO ではバインド部分と実行部分を組み合わせることができ、非常に便利です。 PDO は名前付きプレースホルダーもサポートしており、これが非常に便利だと考える人もいます。

###2。ホワイトリストフィルタリングを使用する
SQL キーワード、テーブルまたはフィールド名、演算子などのその他のクエリ部分は、

ホワイトリスト

によってフィルタリングする必要があります。

キーワードや識別子 (データベース、テーブル、フィールド名) など、クエリの別の部分を表す変数を追加する必要がある場合があります。このような状況はまれですが、備えておくことが最善です。

この場合、変数は、スクリプトに記述された値のリスト 明示的に

と照合する必要があります。私の他の記事

ユーザーの選択に基づいて ORDER BY 句にフィールド名を追加する

では、次のことについて説明しています:

これは例です: リーリー リーリー このようなコードの後は、$direction

変数と

$orderby

変数の両方を安全に SQL クエリに入れることができます。これらは、許可されているバリアントの 1 つと等しいか、または次のいずれかになるためです。エラーがスローされます。

識別子について最後に述べておきたいのは、識別子も特定のデータベース構文に従ってフォーマットする必要があるということです。 MySQL の場合は、識別子の前後に バッククォート 文字を付ける必要があります。したがって、注文例の最終的なクエリ文字列は になります。 リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!