Liaison dynamique des paramètres MySQL en PHP
Dans votre application, vous rencontrez des scénarios dans lesquels vous devez lier dynamiquement des paramètres à des requêtes SQL préparées. Bien que votre approche actuelle fonctionne, elle manque de polyvalence, en particulier lorsqu'il s'agit d'un nombre variable de paramètres.
Pour obtenir la flexibilité souhaitée, vous pouvez exploiter la technique suivante en utilisant call_user_func_array() et l'opérateur de décompression ($... var):
public function get_custom_result($sql, $types = null, $params = null) { $stmt = $this->mysqli->prepare($sql); $stmt->bind_param($types, ...$params); if (!$stmt->execute()) return false; return $stmt->get_result(); }
Cette méthode get_custom_result() mise à jour vous permet de spécifier les types et les valeurs des paramètres de manière dynamique via les arguments $types et $params, respectivement. La syntaxe ...$params décompresse le tableau, en passant chaque valeur individuellement à la méthode bind_param().
Par exemple, considérons les valeurs de requête et de paramètre suivantes :
$sql = " SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ? AND root_contacts_cfm.cnt_firstname = ? ORDER BY cnt_id DESC"; $params = ['1', 'Tk'];
Vous pouvez exécutez maintenant la requête avec la liaison de paramètres dynamique :
$res = $output->get_custom_result($sql, 'ss', $params); while ($row = $res->fetch_assoc()) { echo $row['fieldName'] .'<br>'; }
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!