sql >> Database >  >> RDS >> Mysql

Hoe parameters te binden aan een onbewerkte DB-query in Laravel die op een model wordt gebruikt?

OK, na wat experimenteren, hier is de oplossing die ik bedacht:

$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();

Kortom, setBindings moet worden aangeroepen op de vraag. Ik wou dat dit gedocumenteerd was!



  1. Aankondiging van ClusterControl 1.4.1 - de ProxySQL-editie

  2. MySQL - Trigger voor het bijwerken van dezelfde tabel na het invoegen

  3. UPPER() – Converteren naar hoofdletters in PostgreSQL

  4. Node.js en Microsoft SQL Server