Php PDO SELECT with WHERE子句空数组

Php PDO SELECT with WHERE子句空数组,php,pdo,Php,Pdo,我想用PDO做一个选择。我正在使用username列指定用户信息。当我使用WHERE id=$user\u id时,它返回正确的结果,但当我使用WHERE username=$username时,它返回一个空数组。 这是我的密码 USER MODEL FILE class user_model extends Models { function __construct() { parent::__construct(); } function e_mail_control($e_m

我想用PDO做一个选择。我正在使用username列指定用户信息。当我使用WHERE id=$user\u id时,它返回正确的结果,但当我使用WHERE username=$username时,它返回一个空数组。 这是我的密码

USER MODEL FILE 

class user_model extends Models {
function __construct() {
    parent::__construct();
}

function e_mail_control($e_mail)
{
    $this->db->select('*');
    $this->db->where(array('user_e_mail' => $e_mail));
    return $this->db->get('users', PDO::FETCH_ASSOC);
}

function username_control($username)
{
    $this->db->select('*');
    $this->db->where(array('user_username' => $username));
    return $this->db->get('users', PDO::FETCH_ASSOC);
}}

您需要为$username使用单引号:


您的函数$this->db->selectc'*'中有一个输入错误;选择后您有一个额外的c,但它不是。我用不同的语言编写它们。我在这里更改了它们。我从未见过这种语法,但我的假设是,您需要引用用户名。我通常使用带有参数化值的查询函数。这是密码点火器吗?请标记您正在使用的框架,因为这不是本机PDO行为或语法。@MahirKöle,您可以激活探查器并验证select查询,前提是数据库中存在用户名。在发布的代码中没有任何直接构造的SQL语句带有手动创建的WHERE子句。很明显,有一个框架的查询生成器在起作用。我相信你是投票否决所有这些帖子的人,因此,你可以给我们一个更好的答案,或者你可以只做F.ONot,所有这些,只有你的答案。如果OP提供上述评论中要求的必要信息,我会提供更好的答案,我知道当我们有这些信息时答案是什么。
WHERE username = '$username'