Maison > base de données > tutoriel mysql > Comment gérer les paramètres de liaison dans les requêtes Laravel Raw DB sur les modèles ?

Comment gérer les paramètres de liaison dans les requêtes Laravel Raw DB sur les modèles ?

Mary-Kate Olsen
Libérer: 2024-11-19 02:58:02
original
414 Les gens l'ont consulté

How to Handle Binding Parameters in Laravel Raw DB Queries on Models?

Paramètres de liaison dans les requêtes de base de données brutes Laravel sur des modèles

Lorsque vous travaillez avec des requêtes de base de données brutes dans Laravel sur des modèles, les paramètres de liaison peuvent être un défi . Ce problème survient lors de l'utilisation d'une combinaison de paramètres nommés et positionnels, entraînant l'erreur « Numéro de paramètre non valide : paramètres nommés et positionnels mixtes ».

Pour résoudre ce problème, envisagez la solution suivante :

  1. Remplacez les paramètres nommés dans la requête de base de données brute par des points d'interrogation (?).
  2. Utilisez la méthode setBindings() pour lier les valeurs des paramètres à la requête. L'ordre des valeurs dans le tableau transmis à setBindings() doit correspondre à l'ordre des points d'interrogation dans la requête.
$property = Property::select(
    DB::raw("title, lat, lng, ( 
        3959 * acos( 
            cos( radians(  ?  ) ) *
            cos( radians( lat ) ) * 
            cos( radians( lng ) - radians(?) ) + 
            sin( radians(  ?  ) ) *
            sin( radians( lat ) ) 
        )
   ) AS distance")
)
->having("distance", "<", "?")
->orderBy("distance")
->take(20)
->setBindings([$lat, $lng, $lat, $radius])
->get();
Copier après la connexion

En utilisant la méthode setBindings(), les valeurs des paramètres peuvent être liées à la requête, permettant l'exécution de requêtes de base de données brutes nécessitant un paramétrage.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal