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";
どのアプローチを選択しますか?
選択は特定のユースケースによって異なります:
Prepared の利点ステートメント
プリペアド ステートメントの使用は、データベースを悪意のある攻撃から保護する重要なセキュリティ対策であることを覚えておいてください。攻撃します。
以上がPHP で MySQL クエリで配列を効率的に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。