Utilisations multiples des paramètres liés
Lors de la création d'un moteur de recherche de base de données de base, les développeurs peuvent rencontrer le besoin d'inclure différents types d'informations et de récupérer données provenant de plusieurs tables. Lors de l'utilisation d'instructions préparées avec des paramètres liés pour la correspondance de modèles, la documentation PDO met en garde contre l'utilisation du même marqueur de paramètre nommé plus d'une fois.
Pour contourner cette limitation, une solution potentielle consiste à remplacer chaque paramètre :term par :termX (où X représente term = n ). Cependant, cela peut devenir fastidieux et sujet aux erreurs.
Une approche alternative consiste à utiliser les variables définies par l'utilisateur MySQL. En stockant les paramètres dans ces variables, le code devient plus lisible et évite le besoin de fonctions PHP supplémentaires. Voici comment cela fonctionne :
Exemple :
$sql = "SET @term = :term"; try { $stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute(); } catch (PDOException $e) { // error handling } $sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term"; try { $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->fetchAll(); } catch (PDOException $e) { // error handling }
Avantages des variables définies par l'utilisateur :
Considération :
Un MySQL supplémentaire une requête est requise, ce qui peut devoir être pris en compte pour des problèmes de performances.
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!