Error devolviendo Array

feralmo
29 de Mayo del 2006
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.