Reputation: 118
$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
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
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