Foros del Web » Programando para Internet » PHP »

PHP Fatal Error Memoria insuficiente con dbase_get_record/dbase_get_record_with_names

Estas en el tema de PHP Fatal Error Memoria insuficiente con dbase_get_record/dbase_get_record_with_names en el foro de PHP en Foros del Web. Buenas tardes, estoy realizando un script migrador de arhivos de foxpro o dbase (dbf) a mysql, el cual funciona sin problemas con la mayoria de ...
  #1 (permalink)  
Antiguo 26/10/2014, 11:52
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Busqueda PHP Fatal Error Memoria insuficiente con dbase_get_record/dbase_get_record_with_names

Buenas tardes, estoy realizando un script migrador de arhivos de foxpro o dbase (dbf) a mysql, el cual funciona sin problemas con la mayoria de los archivos, sin embargo cuando paso un archivo muy grande, me da el siguiente error:

Código:
Fatal error: Out of memory (allocated 1084751872) (tried to allocate 32 bytes) in D:\wamp\www\dbf2MySql\LeerDbase.php on line 65
Este es la pieza del código donde se localiza el error:

Código PHP:
echo "Por favor espere...<br/>";
for (
$valor 1$valor <= count($archivos); $valor++) {
    
//echo $valor; 
    //echo $archivos[$valor]; echo "<br/>";
    
$fichero_dbf "tmp/"$archivos[$valor];
    
$conex       dbase_open($fichero_dbf0); //abro el archivo
    
if($conex){ //si la conexión es buena, realizo la migración
        
$arrData = array();
        
$total_registros dbase_numrecords($conex);
        for (
$i 1$i <= $total_registros$i++){
            
$arrData[] = dbase_get_record_with_names($conex,$i); //<-- Esta es la línea que arroja el problema
        
}
        
// Obtener la información de columna
        
$info_columna dbase_get_header_info($conex);
        
//Busco los titulos o cabeceras
        
        
for ($i 0$i count($info_columna); $i++) {
            
$titulos[$i] = $info_columna[$i]['name'];
            if (
in_array($info_columna[$i]['name'], $titulos)) {
                
$titulos[$i] = $info_columna[$i]['name']."_".$i;
            }
        }
        
//print_r($titulos); 
        //echo DibujarTabla($titulos, $arrData);
        
$arreglo explode("."$archivos[$valor]);         
        
//Paso los datos a mysql
        
CrearTablaMySql($arreglo[0], $dbf2MySql$titulos$arrData$database_dbf2MySql$total_registros);
        
    }else{
        echo 
"No se pudo acceder al fichero dbf -> '" $fichero_dbf "'<br/>"//Si me da un error muestro un error
    
}
    
dbase_close($conex); //Cierro la conexión al archivo
    
if ($valor == (count($archivos))) {
        echo 
"FINALIZADO";
        
mysqli_close($dbf2MySql);
    }

Cualquier ayuda para solventar esto sera altamente agradecida

EDICION

Aca el codigo completo

http://goo.gl/aHURGl

EDICION
Ok, me decidi a hacerlo mediante consola, y ejecutar un .bar pero me ocurre el siguiente error en la consola: Fatal error: Call to undefined function dbase_open() in D:\wamp\www\dbf2MySql\Co
mmandScript.php on line 33

Call Stack:
0.0007 273304 1. {main}() D:\wamp\www\dbf2MySql\CommandScript.php:0
__________________
http://www.solucionesrios.tk/

Visita mi Web!

Última edición por warbandit69; 26/10/2014 a las 15:27 Razón: Dar las gracias

Etiquetas: memory, mysql
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 03:32.