使用原始数据库进行查询,但由于sql字符串出错而无法运行

使用原始数据库进行查询,但由于sql字符串出错而无法运行,sql,laravel,Sql,Laravel,我不熟悉使用laravel,我必须使用sql字符串进行查询,但由于sql查询中存在错误,代码无法运行 代码是: $current_lat = $request->latitude; $current_lng = $request->longitude; $car_type = $request->car_type; $data=DB::table('artisantypes')->select(DB::raw('artisantypes.ma

我不熟悉使用laravel,我必须使用sql字符串进行查询,但由于sql查询中存在错误,代码无法运行 代码是:

 $current_lat = $request->latitude;

  $current_lng = $request->longitude;

  $car_type = $request->car_type;
        $data=DB::table('artisantypes')->select(DB::raw('artisantypes.max_seat AS max_size,3956 * 2 * ASIN(SQRT(POWER(SIN(($current_lat - artisans.driver_lat) * pi()/180 / 2), 2)+ COS($current_lat * pi()/180 ) * COS(artisans.driver_lat * pi()/180) * POWER(SIN(($current_lng - artisans.driver_lng) * pi()/180 / 2), 2) )) as distance,artisans.driver_lat,artisans.driver_lng' ))
        ->leftjoin('artisans','artisantypes.id', '=','artisans.car_id' )
        ->where('artisantypes.id' ,'=', $car_type and 'artisans.status', '=' , 0)
        ->groupby('artisans.id')
        ->having('distance' ,'<', 25)
        ->orderby ('distance', 'ASC' )
        ->limit( 0,1)
        ->get();
$current\u lat=$request->latitude;
$current_lng=$request->longitude;
$car\u type=$request->car\u type;
$data=DB::table('artisantypes')->选择(DB::raw('artisantypes.max_seat AS max_size,3956*2*ASIN)(功率(SIN($current\u lat-artisans.driver\u lat)*pi()/180)/COS(artisans.driver\u lat pi()/180)*功率(SIN($current\u lng-artisans driver\u lng)*pi()/180/2)))作为距离,artisans.driver_lat,artisans.driver_lng'))
->leftjoin('artisans','ArtisTypes.id','=','artisans.car_id'))
->其中('artisantypes.id'、'='、$car_type和'artisans.status'、'=',0)
->groupby('artisans.id')

->使用('distance','不能在where函数中直接指定AND

改变

->where('artisantypes.id' ,'=', $car_type and 'artisans.status', '=' , 0)


where('artisantypes.id'、'='、$car\u type和'artisans.status'、'=',0)
这看起来不太正确。但更正后,查询找不到$current\u lat和$current\u lngth这两个PHP基础。不能在单引号内使用变量名。如果要分析其中的变量,请使用双引号。'$current\u lat'和'“$current_lat”将为您提供不同的字符串。
->where('artisantypes.id' ,'=', $car_type and 'artisans.status', '=' , 0)
->where([
    ['artisantypes.id' ,'=', $car_type],
    ['artisans.status', '=' , 0],
])