Maison > développement back-end > tutoriel php > Comment puis-je lier un tableau à une clause IN() dans PDO ?

Comment puis-je lier un tableau à une clause IN() dans PDO ?

Patricia Arquette
Libérer: 2024-12-22 02:37:14
original
892 Les gens l'ont consulté

How Can I Bind an Array to an IN() Clause in PDO?

Liaison d'un tableau à une condition IN() dans les requêtes PDO

Présentation

Le PDO (PHP Data Objects) de PHP fournit un mécanisme pour lier des espaces réservés dans les requêtes sur les valeurs d'un tableau. Cependant, il ne prend pas en charge nativement la liaison d'un tableau de valeurs à une condition IN().

Création d'une chaîne d'espace réservé

En guise de solution de contournement, vous pouvez construire manuellement une chaîne d'espace réservé en itérant sur le tableau et concaténer des espaces réservés avec des virgules.

$ids = [1, 2, 3, 7, 8, 9];
$in = str_repeat('?,', count($ids) - 1) . '?';
Copier après la connexion

La variable $in contiendra une chaîne comme "?,?,?,?,?,?".

Préparation et exécution de la requête

Préparez la requête à l'aide de la chaîne d'espace réservé :

$stmt = $db->prepare("SELECT * FROM table WHERE id IN($in)");
Copier après la connexion

Exécutez le interrogez et transmettez le tableau comme arguments :

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

Approche alternative : nommée Espaces réservés

Pour les espaces réservés nommés, tels que :id0, :id1, :id2, etc., vous devrez créer manuellement une séquence d'espaces réservés et collecter les valeurs dans un tableau associatif.

$i = 0;
$in_params = [];
foreach ($ids as $item) {
    $key = ":id" . $i++;
    $in_params[$key] = $item;
    $in .= ($in ? ',' : '') . $key;
}
Copier après la connexion

Conclusion

Bien que PDO ne permette pas explicitement de lier un tableau à une condition IN(), vous pouvez répliquer la fonctionnalité en construisant manuellement un chaîne d'espace réservé ou en utilisant des espaces réservés nommés avec un tableau associatif. Ces approches fournissent un moyen pratique de gérer les tableaux dans les conditions IN() dans les requêtes PDO.

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