Maison >développement back-end >tutoriel php >Comment lier efficacement un tableau de chaînes à une clause MySQL WHERE IN(?) à l'aide des instructions préparées mysqli de PHP ?
Liaison d'un tableau de chaînes à une clause WHERE IN (?)
Liaison d'un tableau de valeurs à la clause WHERE IN (?) est une tâche MySQL courante. Lorsque vous utilisez les instructions préparées par MySQLi de PHP, cela peut être difficile à réaliser si vous n'êtes pas familier avec les limitations et les nuances de la fonction bind_param().
Le problème
Vous pouvez rencontrer des problèmes lorsque vous essayez de lier un tableau de valeurs à la clause IN(?) à l'aide de bind_param(), ce qui entraîne un échec. exécution.
La solution
Il existe différentes manières d'aborder cette tâche, selon la version de PHP que vous utilisez :
PHP 8.2 et supérieur
PHP 8.1
Versions PHP antérieures
Pour les anciennes versions, une approche plus élaborée est nécessaire :
Exemple de code
Voici un exemple utilisant l'approche des versions PHP antérieures :
$array = ['Nashville', 'Knoxville']; $in = str_repeat('?,', count($array) - 1) . '?'; $sql = "SELECT name FROM table WHERE city IN ($in)"; $stmt = $mysqli->prepare($sql); // prepare $types = str_repeat('s', count($array)); // types $stmt->bind_param($types, ...$array); // bind array at once $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC);
En comprenant ces approches, vous pouvez lier efficacement un tableau de chaînes à une clause WHERE IN(?) à l'aide d'instructions préparées par mysqli, garantissant ainsi l'exécution réussie de vos requêtes.
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!