Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2007, 14:09
sarrow
 
Fecha de Ingreso: junio-2002
Mensajes: 11
Antigüedad: 21 años, 11 meses
Puntos: 0
Hacer una Query ldap con PEAR

Hola a todos,

la pregunta es simple y a la vez muy tonta pero es que llevo toda la santa tarde investigando como realizar una misera query con PEAR y no me ha quedado mas remedio que preguntar a ver si alguien sabe como se realiza.

A continuación os pongo un trozo del código el cual conecta con el ldap y obtengo unas entradas de él sin ningún problema:

Código PHP:
$ldap_host "ldap.baylor.edu";
$base_dn "ou=Third Year,ou=Student,ou=People,o=Baylor University,c=US";
$filter "(cn=*)";
$ldap_user  "";
$ldap_pass "";
$connect ldap_connect$ldap_host$ldap_port)
         or exit(
">>Could not connect to LDAP server<<");
ldap_set_option($connectLDAP_OPT_PROTOCOL_VERSION3);
ldap_set_option($connectLDAP_OPT_REFERRALS0);
$bind ldap_bind($connect$ldap_user$ldap_pass)
      or exit(
">>Could not bind to $ldap_host<<");
$read ldap_search($connect$base_dn$filter)
      or exit(
">>Unable to search ldap server<<");
$info ldap_get_entries($connect$read);
echo 
$info["count"]." entries returned<p>";
$ii=0;
for (
$i=0$ii<$info[$i]["count"]; $ii++){
    
$data $info[$i][$ii];
    echo 
$data.":&nbsp;&nbsp;".$info[$i][$data][0]."<br>";
}
ldap_close($connect); 

El problema surge cuando quiero pasar esas funciones y trabajar con PEAR, el código es el siguiente, aun no he puesto que muestre el resultado porque no creo que esté bien hecho, en el código anterior me da como resultado 11 entradas y en el código con PEAR da 1 entrada y ningún error, por tanto algo mal he hecho en la query.

Código PHP:
$dsn "ldap://ldap.baylor.edu/ou=People,o=Baylor University,c=US";
$options = array(
        
'debug'       => 2,
      
'portability' => DB_PORTABILITY_ALL,
    );
    
$db =& DB::connect($dsn$options);
if (
PEAR::isError($db)) {
   die(
$db->getMessage());        
}

$result =& $db->query("(cn=*)");
        
if (
PEAR::isError($result)) {
  die(
$result->getMessage());        
}
    
$db->disconnect(); 

En cuanto a la funcion query empleada no he encontrado mucho mas lo que pone en la documentación:


Código:
query   [line 592]
LDAP_result &query( string $query, [array $data = array()], [string $action = null], [array $params = array()])

Executes a query substituting variables if any are present

    * Return: object or DB Error object if no result
    * See: DB_common::prepare() $this->execute()$this->simpleQuery()


Parameters:
string   	$query   	— 	  text of the request to send to the LDAP server
array   	$data   	— 	  query variables values to substitute
string   	$action   	— 	  type of request to perform, defaults to search (ldap_search())
array   	$params   	— 	  array of additional parameters to pass to the PHP ldap function requested

No se si alguien puede echarme una mano, le estaría muy agradecido.
Muchas gracias.