Q:

Mysql Query not returning my results

If I run this with the query 
"SELECT * FROM users"; 

It returns my result.  But as soon as I run this 
$username = $_POST['username'];
$password = $_POST['password'];

$login = "SELECT * FROM users WHERE name= ".$username."  AND password= ".$password.""; 

it doesn't. 
If I run it in Mysql workbench without the variables it works.  If I run echo the $_POST values they come through correctly.  
I am stumped as to what I'm doing wrong PLEASE!!  help me. 
I also ran my code through https://phpcodechecker.com/ and it cant see any errors in my code.  
This is the full function. 
function login($username,$password){
global $db_conn;
$conn = new mysqli($db_conn['servername'], $db_conn['username'], $db_conn['password'], $db_conn['dbname']);
$username = $_POST['username'];
$password = $_POST['password'];

$login = "SELECT * FROM users WHERE name= ".$username."  AND password= ".$password.""; 
    $login_result = $conn->query($login);

    if ($login_result->num_rows > 0) {

        $output = array();
        while($row = $login_result->fetch_assoc()) {
            $output[] = $row;
            echo "".$row['name']."-".$row['password']."<br>";
        }
        } else {
            echo "Invaild Login Details!". "<br>" ;
            $conn->close();
            return false;
        }
}

Every time it says  "Invalid Login Details!"  But I know their is one result that gets returned. 
What am I doing wrong? 

A:

change the query like this
$login = "SELECT * FROM users WHERE name= '$username' AND password= '$password'";

note: this method is prone to sql injection attacks.  try prepared statements to avoid it

