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. 
   
 

