Comment mettre à jour efficacement plusieurs enregistrements MySQL à l'aide de tableaux PHP ?

Patricia Arquette
Libérer: 2024-11-26 12:16:13
original
905 Les gens l'ont consulté

How to Efficiently Update Multiple MySQL Records Using PHP Arrays?

Comment utiliser des éléments de tableau dans les requêtes MySQL en PHP

En PHP, vous pouvez exécuter une requête MySQL en utilisant les valeurs d'un tableau de des entiers comme paramètres d’entrée. Cette technique est particulièrement utile lors de l'exécution d'opérations de MISE À JOUR individuelles pour chaque élément du tableau.

Déclarations préparées : l'approche plus sûre et plus efficace

Pour garantir la sécurité et l'efficacité de vos requêtes, il est fortement recommandé d'utiliser des instructions préparées. Cela implique de créer une requête SQL paramétrée, puis de transmettre les éléments du tableau en tant que paramètres lors de l'exécution.

Considérez le code PHP suivant :

$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: $id\n";
}

$stmt->close();
Copier après la connexion

Ce code prépare une requête UPDATE paramétrée puis parcourt le tableau, liant chaque élément à l'espace réservé (?) et exécutant la requête. En utilisant des instructions préparées, vous atténuez le risque d'attaques par injection SQL et améliorez les performances.

Approche non itérative : efficace pour les opérations en masse

Une approche alternative, adaptée aux opérations groupées, consiste à utiliser plusieurs espaces réservés de paramètres dans la requête SQL et à y lier le tableau en une seule étape.

$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();

$stmt->close();
echo "Updated record IDs: " . implode("," $ids) ."\n";
Copier après la connexion

Cette approche prépare un seul paramètre paramétré Requête SQL et lie l'ensemble du tableau en même temps, améliorant ainsi l'efficacité des opérations en masse. N'oubliez pas d'utiliser la fonction ref pour créer des références aux valeurs du tableau, qui sont nécessaires au bon fonctionnement de la méthode bind_param.

En utilisant les extraits de code fournis et en comprenant les avantages des instructions préparées, vous pouvez utiliser efficacement le tableau éléments dans vos requêtes MySQL au sein de PHP, garantissant la sécurité et l'optimisation des performances.

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!

source:php.cn
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