PHP で MySQL クエリで配列を効率的に使用する方法

Mary-Kate Olsen
リリース: 2024-11-26 19:08:11
オリジナル
164 人が閲覧しました

How to Efficiently Use Arrays with MySQL Queries in PHP?

MySQL クエリでの配列の使用 (PHP): 総合ガイド

MySQL クエリは、パラメータを指定する配列を組み込むことで拡張できます。これにより、単一のステートメント内で複数の値を効率的に処理できるようになります。

アプローチ 1: プリペアド ステートメント

プリペアド ステートメントは、クエリに動的値を追加するための安全かつ効率的な方法を提供します。 。準備されたステートメントを使用すると、各配列要素をパラメーターとして繰り返しバインドできます。

$mysqli = new mysqli(...);
$sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?";
$stmt = $mysqli->prepare($sql);

foreach ($ids as $id) {
    $stmt->bind_param("i", $id);
    $stmt->execute();
    echo "Updated record ID: $id\n";
}
ログイン後にコピー

アプローチ 2: クエリ内のパラメーター プレースホルダー

または、埋め込むこともできます。クエリ自体にパラメータのプレースホルダを追加し、すべての配列要素を 1 つにバインドしますステップ:

$sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN (?)";
$stmt = $mysqli->prepare($sql);

$types = str_repeat("i", count($ids));
$args = array_merge(array($types), $ids);
call_user_func_array(array($stmt, 'bind_param'), ref($args));

$stmt->execute();
echo "Updated record IDs: " . implode(",", $ids) . "\n";
ログイン後にコピー

どのアプローチを選択しますか?

選択は特定のユースケースによって異なります:

  • アプローチ1: 各レコードを繰り返し処理する UPDATE または INSERT 操作に適しています。
  • アプローチ 2: SELECT または DELETE 操作、または 1 つのデータベース リクエストで同じデータを持つ複数のレコードを更新する必要がある場合に最適です。

Prepared の利点ステートメント

  • SQL インジェクションの脆弱性を防止します。
  • コンパイルされたステートメントを再利用することでパフォーマンスを向上させます。
  • ネットワーク経由でパラメーター値のみを送信することで、データ転送を削減します。

プリペアド ステートメントの使用は、データベースを悪意のある攻撃から保護する重要なセキュリティ対策であることを覚えておいてください。攻撃します。

以上がPHP で MySQL クエリで配列を効率的に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート