Maison >développement back-end >tutoriel php >Comment utiliser efficacement les tableaux d'identifiants PHP dans les requêtes MySQL ?

Comment utiliser efficacement les tableaux d'identifiants PHP dans les requêtes MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 04:31:13326parcourir

How to Efficiently Use PHP Arrays of IDs in MySQL Queries?

Utilisation d'un tableau d'identifiants dans les requêtes MySQL avec PHP

Lorsqu'il s'agit de tableaux d'identifiants entiers en PHP, il devient nécessaire de les incorporer dans les requêtes MySQL. Cet article explique comment y parvenir efficacement.

Approche des déclarations préparées

Une approche recommandée consiste à utiliser des déclarations préparées pour une sécurité et une efficacité accrues. Voici un exemple :

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

// Prepare the SQL statement with a single parameter placeholder
$sql  = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?";
$stmt = $mysqli->prepare($sql);

// Bind a different value to the placeholder for each execution
for ($i = 0; $i < count($ids); $i++) {
    $stmt->bind_param("i", $ids[$i]);
    $stmt->execute();
    echo "Updated record ID: $id\n";
}

Instruction dynamique avec plusieurs espaces réservés

Alternativement, une instruction SQL dynamique avec plusieurs espaces réservés peut être construite :

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

// Prepare the SQL statement with multiple parameter placeholders
$params = implode(",", array_fill(0, count($ids), "?"));
$sql    = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)";
$stmt   = $mysqli->prepare($sql);

// Bind all parameter values at once using dynamic function call
$types = str_repeat("i", count($ids));
$args = array_merge(array($types), $ids);
call_user_func_array(array($stmt, 'bind_param'), ref($args));

// Execute the query for all input values in one step
$stmt->execute();

Quelle approche pour Choisir ?

  • Approche itérative : Utile pour les opérations UPDATE et INSERT, où les enregistrements individuels sont mis à jour ou insérés un par un.
  • Approche à instruction unique : Plus efficace pour les opérations SELECT et DELETE, ou lors de la mise à jour de plusieurs enregistrements avec le même data.

Avantages des instructions préparées

Au-delà d'une sécurité améliorée contre les injections SQL, les instructions préparées offrent plusieurs avantages :

  • Augmentation efficacité en permettant à la base de données de compiler l'instruction une seule fois et de la réutiliser pour plusieurs exécutions.
  • Données réduites transfert par fil en raison de l'envoi uniquement des valeurs de paramètres pendant l'exécution.
  • Élimine le besoin de substitution manuelle d'espaces réservés, minimisant ainsi le risque d'erreurs.

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