Sanjog Mittal
Sanjog Mittal

Reputation: 118

How to Add php variable in laravel function

$username='Vasim';

$results = DB::select(
    'Select r.LocationId ,LM.Name+'-'+LM.LocationCode as LocationName
        from User_Master u(nolock), UserRoleLoc_link r(nolock)
        left join Location_Master LM(nolock)
        on r.LocationId = LM.LocationId
        Where r.UserId = u.UserId
        AND u.UserName = '$username' AND LM.Status = 1 AND
        (IsNull(NullIf('',''),'1')='1' Or r.LocationId = '') 
        AND LM.isLocationOnline = 1
        Group by r.UserId, u.UserName, 
            r.LocationId,u.Password,LM.Name,LM.LocationCode
        having COUNT(r.UserId) > 0
        Order By Count(r.UserId) DESC');

Error : syntax error, unexpected '$username' (T_VARIABLE)

how can i use my variable in this query

Upvotes: 2

Views: 189

Answers (2)

Ravi Hirani
Ravi Hirani

Reputation: 6539

Write your query with Double quote"" instead of single Quote''.

$results = DB::select("SELECT r.LocationId ,LM.Name+'-'+LM.LocationCode as LocationName From User_Master u(nolock), UserRoleLoc_link r(nolock) 
    LEFT JOIN Location_Master LM(nolock) on r.LocationId = LM.LocationId 
    WHERE r.UserId = u.UserId AND u.UserName = '$username' 
    AND LM.Status = 1 AND (IsNull(NullIf('',''),'1')='1' Or r.LocationId = '') 
    AND LM.isLocationOnline = 1 GROUP BY r.UserId, u.UserName, r.LocationId,u.Password,LM.Name,LM.LocationCode HAVING COUNT(r.UserId) > 0 
    ORDER BY Count(r.UserId) DESC");

PHP executes variable in double quotes not in single quote.

$username = 'vasim';
echo '$username';  // $username
echo "$username";  // vasim

Hope it will help you :-)

Upvotes: 2

Deep Kakkar
Deep Kakkar

Reputation: 6305

Use your db query like the following string:

   $username='Vasim';
   $results = DB::select("Select r.LocationId ,LM.Name+'-'+LM.LocationCode as LocationName from User_Master u(nolock), UserRoleLoc_link r(nolock) left join Location_Master LM(nolock) 
                on r.LocationId = LM.LocationId
                Where r.UserId = u.UserId
                AND u.UserName = '".$username."'  AND LM.Status = 1 AND
                (IsNull(NullIf('',''),'1')='1' Or r.LocationId = '') AND LM.isLocationOnline = 1
                Group by r.UserId, u.UserName, r.LocationId,u.Password,LM.Name,LM.LocationCode
                having COUNT(r.UserId) > 0
                Order By Count(r.UserId) DESC");

Please check the double quoted string and concatenation change in the query there.

Upvotes: 2

Related Questions