Maison >développement back-end >tutoriel php >Comment mettre à jour efficacement plusieurs enregistrements MySQL à l'aide de PHP avec un tableau d'ID ?

Comment mettre à jour efficacement plusieurs enregistrements MySQL à l'aide de PHP avec un tableau d'ID ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 21:58:18297parcourir

How to Efficiently Update Multiple MySQL Records Using PHP with Array of IDs?

Itération à travers un tableau d'ID pour les requêtes MySQL

Lorsque vous travaillez avec des requêtes MySQL en PHP, vous devrez peut-être incorporer plusieurs valeurs d'un tableau dans la requête. Ce guide montre comment y parvenir efficacement à l'aide d'instructions préparées et de requêtes SQL dynamiques.

Instructions préparées (recommandées)

Les instructions préparées offrent une sécurité et une efficacité améliorées. Voici comment les utiliser :

$ids = array(2, 4, 6, 8);

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

for ($i = 0; $i < count($ids); $i++) {
    $stmt->bind_param("i", $ids[$i]);
    $stmt->execute();
    echo "Updated record ID: $ids[$i]";
}

$stmt->close();

Requêtes SQL dynamiques

Vous pouvez également construire une requête SQL dynamique de manière dynamique :

$ids = array(2, 4, 6, 8);

$params = implode(",", array_fill(0, count($ids), "?"));
$sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)";
$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);

Comparaison et utilisation Lignes directrices

  • Déclarations préparées : Exécution itérative de plusieurs opérations de base de données. Plus adapté aux requêtes INSERT et UPDATE.
  • Dynamic SQL : Exécute une requête unique et plus efficace pour tous les enregistrements. Idéal pour les opérations SELECT, DELETE et UPDATE impliquant les mêmes données.

Avantages des déclarations préparées

  • Sécurité : Empêche les attaques par injection SQL.
  • Efficacité : Réutilise les instructions compilées pour plusieurs exécutions.
  • Compacité : Transmet uniquement les valeurs des paramètres pendant l'exécution.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn