Imaginez que nous avons une requête:Une instruction préparée, `WHERE .. IN (..)` requête et tri - avec MySQL
SELECT * FROM somewhere WHERE `id` IN(1,5,18,25) ORDER BY `name`;
et un tableau d'ID chercher: $ids = array(1,5,18,25)
Avec déclarations préparées il est adviced de préparer une déclaration et l'appeler plusieurs fois:
$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id`=?;');
foreach ($ids as $id){
$stmt->bind_params('i', $id);
$stmt->exec();
}
Mais maintenant, je vais devoir trier les résultats manuellement. Est-ce que j'ai d'autres bonnes alternatives?
Selon le lien fourni I pense que le raisonnement pour la préparation des déclarations était le besoin de UPDATE qui ne supporte pas plusieurs mises à jour dans une requête. Alors que vous êtes en train de sélectionner et que votre première requête est suffisante. –
J'étais convaincu que les déclarations préparées ne sont pas bonnes dans de tels cas. La seule solution sympa consiste à «faire une requête» et à trier ce tableau d'ID, pas ici. – kolypto