Example code from my ldap class.
public function query($_filter, $_att, $_ref=2, $count_bool=true)
    {
    $fn     = 'query';
    $config = $this->config;
    $conn   = $this->conn;
    if (!$conn)
        {return $this->errorConnection($fn);}
    ldap_set_option($conn, LDAP_OPT_DEREF, $_ref);    
    $result = ldap_search($conn, $config['baseDn'], $_filter, $_att);    //  or die(ldap_error($conn))
    if ($result===false)
        {
        $this->error("Search error, neexistuje!");
        return false;
        }
    $count = ldap_count_entries($conn, $result);
    if ($count_bool && $count!=1)
        {
        $this->error("Search error, neni unikatni! count=".$count);
        ldap_free_result($result);
        return false;
        }
    $data = ldap_get_entries($conn, $result);
    ldap_free_result($result);
    return $data;
    }
// ---
    $filter = "(&(objectclass=person)(cn=" . $user_name . "))";
    $att    = array(
        'uid', 
        'workforceID',
        'employeeID',
        'givenName',
        'sn',
        'mail'
        );
    $data   = $this->query($filter, $att, 2, true);