Foros del Web » Programando para Internet » PHP »

Problemas devolviendo Array desde función

Estas en el tema de Problemas devolviendo Array desde función en el foro de PHP en Foros del Web. Hola, Tengo un desarrollo que funcionaba perfectamente con PHP 4 y que al moverlo a un sitio con PHP 5.0.5 está fallando. Al llamar a ...
  #1 (permalink)  
Antiguo 29/05/2006, 06:19
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Problemas devolviendo Array desde función

Hola,

Tengo un desarrollo que funcionaba perfectamente con PHP 4 y que al moverlo a un sitio con PHP 5.0.5 está fallando.

Al llamar a la función ejecutarsql no devuelve nada, pero si que detecta filas resultantes:

$query = "SELECT * FROM " . BD_TABLE . " $where ORDER BY Nombre $limit";
//echo $query;

$rows = $bd -> ejecutarsql( $query );
if( $bd -> filas_resultantes( ) ) {
reset( $rows );
foreach ( $rows as $r ) {
}

Este es el código de la función:

function ejecutarsql( $instruccion, $num_rows = 0, $offset = 0 ) {
$conn = $this -> db_conn;
$resultado = false;
for ( $i = 0; $i < NUM_REINTENTOS_EN_BLOQUEOS; $i++ ) {
if ( $num_rows != 0 ) {
$resultado = $conn -> SelectLimit( $instruccion, $num_rows, $offset );
} else {
$resultado = $conn -> Execute( $instruccion );
}
if ( $resultado != false ) {
if ( stristr( $instruccion, "CREATE TABLE" ) || stristr( $instruccion, "INSERT" ) || stristr( $instruccion, "DROP" ) || stristr( $instruccion, "DELETE" ) || stristr( $instruccion, "UPDATE" )) {
$this -> error = NO_ERROR;
$this -> resultado = $resultado;
return true;
}
for ( $j = 0; $j < $resultado -> RecordCount(); $j++ ) {
$aux[ $j ] = $resultado -> GetArray();
$resultado -> NextRecordSet();
$datos[ $j ] = $aux[ 0 ][ $j ];
}
$this -> error = NO_ERROR;
$this -> resultado = $resultado;
echo "resultado".$datos;
return $datos;
} else {
continue;
}
}
$this -> error = ERR_BLOQUEO;
return false;
}

Lo curioso es que al hacer una traza si que se ve que se llama a la función y se ejecuta correctamente. Al hacer un "echo" antes del return se puede apreciar que la variable $datos si que tiene contenido.

¿Puede alguien ayudarme?

Gracias.
  #2 (permalink)  
Antiguo 31/05/2006, 05:07
 
Fecha de Ingreso: mayo-2006
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
¿Puede alguien ayudarme?

Lo intentaré explicar de otra forma por si había alguna confusión:

Tengo una función "ejecutarsql" que debería devolver un array:

for ( $j = 0; $j < $resultado -> RecordCount(); $j++ ) {
$aux[ $j ] = $resultado -> GetArray();
$resultado -> NextRecordSet();
$datos[ $j ] = $aux[ 0 ][ $j ];
}
$this -> error = NO_ERROR;
$this -> resultado = $resultado;
echo "resultado".$datos;
return $datos;

Al hacer el "echo" se ve que el Array $datos tiene contenido.

Pero al hacer la llamada a la función:

$rows = $bd -> ejecutarsql( $query );

la variable $rows no recibe el Array

Gracias.
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 12:37.