Lors de la construction d'instructions préparées MySQL en PHP, la question de savoir comment gérer les requêtes avec un nombre variable d'arguments se pose. Par exemple, considérons une requête comme celle-ci :
SELECT `age`, `name` FROM `people` WHERE id IN (12, 45, 65, 33)
Le nombre d'ID dans la clause IN varie à chaque exécution.
Différentes approches existent pour résoudre ce défi :
Solution 1 : Variables factices et multiples Appels
Solution 2 : Non préparé Requête
Cependant, d'autres options offrent une meilleure efficacité :
Temporaire Approche de table
ENTRÉE dynamique Clause
Par exemple :
$dbh = new PDO(...); $parms = [12, 45, 65, 33]; $inclause = implode(',', array_fill(0, count($parms), '?')); // = ?,?,?,? $preparesql = sprintf('SELECT age, name FROM people WHERE id IN (%s)', $inclause); $st = $dbh->prepare($preparesql); $st->execute($parms);
La première approche peut être plus efficace pour les grands ensembles, tandis que la seconde est adaptée pour les plus petits.
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!