Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Hacer una Query ldap con PEAR

Estas en el tema de Hacer una Query ldap con PEAR en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/04/2007, 14:09
 
Fecha de Ingreso: junio-2002
Mensajes: 11
Antigüedad: 21 años, 10 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.
  #2 (permalink)  
Antiguo 03/04/2007, 15:24
 
Fecha de Ingreso: junio-2002
Mensajes: 11
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Hacer una Query ldap con PEAR

Por si a alguien le interesa el código está bien, resulta que me he dejado llevar por el numero de entradas de un método y de otro, pero no coincide.

Al hacer lo siguiente, vemos que la query estaba bien y que obtenemos los datos que queríamos obtener.

Código PHP:
$row$result->fetchRow();
    
foreach( 
$row as $value ) {
  echo 
$value;    

  #3 (permalink)  
Antiguo 03/04/2007, 23:47
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Hacer una Query ldap con PEAR

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(); 
yo siempre me conecto asi....

Código PHP:


function conectarse()
{
require_once(
DB.php);
$user="root";
$passw="";
$bd="grupo59";
$host="localhost";
$conDB DB::connect("mysql://$user:$passw@$host/$bd");
return 
$conDB;

las query las realizo asi...
Código PHP:
$sql="select * from tabla";
$res$conDB->query($sql);
while ((
$linea=$res->fetchRow(DB_FETCHMODE_ASSOC)) > )
   {
$id=$linea['campo']; etcetc
__________________
http://www.rollermountain.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.