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
Libérer: 2024-11-27 21:58:18
original
306 Les gens l'ont consulté

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();
Copier après la connexion

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);
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal