Foros del Web » Programando para Internet » PHP »

al ejecutar dos veces la misma tarea se cuelga mysql

Estas en el tema de al ejecutar dos veces la misma tarea se cuelga mysql en el foro de PHP en Foros del Web. Hola a todos: Tengo esta pagina que me toma un archivo .CSV y lo carga en la base de datos SIN PROBLEMAS ("Aproximadamente son 12 ...
  #1 (permalink)  
Antiguo 06/12/2012, 15:19
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Información al ejecutar dos veces la misma tarea se cuelga mysql

Hola a todos:

Tengo esta pagina que me toma un archivo .CSV y lo carga en la base de datos SIN PROBLEMAS ("Aproximadamente son 12 mil registros, ahora si ejecuto nuevamente esta rutina sin vaciar la base de datos en ese mismo momento me arroja el siguiente ERROR en pantalla:

Código PHP:
Ver original
  1. Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10055) in C:\Program Files\VertrigoServ\www\Rips\datos_sura.php on line 15
  2. Error conectando a la base de datos.

El codigo PHP es este:

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Documento sin t&iacute;tulo</title>
  6. </head>
  7. <body>
  8. <?php
  9. /* Código que lee un archivo .csv con datos, para luego insertarse en una base de datos, vía MySQL
  10. *  Gracias a JoG
  11. *  http://gualinx.wordpress.com
  12. */  
  13. function Conectarse() //Función para conectarse a la BD
  14. {
  15.        if (!($link=mysql_connect("localhost","root","vertrigo")))  { //Cambia estos datos
  16.            echo "Error conectando a la base de datos.";
  17.            exit();
  18.        }
  19.         if (!mysql_select_db("rips",$link)) {
  20.             echo "Error seleccionando la base de datos.";
  21.            exit();
  22.        }
  23.        return $link;
  24. }
  25. $row = 1;
  26. $handle = fopen("datos_sura.csv", "r"); //Coloca el nombre de tu archivo .csv que contiene los datos
  27. while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { //Lee toda una linea completa, e ingresa los datos en el array 'data'
  28.     set_time_limit(0);
  29.     $num = count($data); //Cuenta cuantos campos contiene la linea (el array 'data')
  30.     $row++;
  31.     $cadena = "INSERT INTO rips_sura (fecha,orden,ips,tipo_iden_paci,num_iden_paci,nombres_paciente,sexo,edad,tipo_iden_me,num_iden_me,nombres_medico,cod_prest,nombres_prestacion,causa_externa,finalidad_consulta,finalidad_procedimiento,dx_ppal,dx_relacionado) VALUES ("; //Cambia los valores 'CampoX' por el nombre de tus campos de tu tabla y colócales los necesarios
  32.  
  33.     for ($c=0; $c < $num; $c++) { //Aquí va colocando los campos en la cadena, si aun no es el último campo, le agrega la coma (,) para separar los datos
  34.         set_time_limit(0);
  35.         if ($c==($num-1))
  36.               $cadena = $cadena."'".$data[$c] . "'";
  37.         else
  38.               $cadena = $cadena."'".$data[$c] . "',";
  39.     }
  40.  
  41.     $cadena = $cadena.");"; //Termina de armar la cadena para poder ser ejecutada
  42.     //echo $cadena."<br>";  //Muestra la cadena para ejecutarse
  43.  
  44.      $enlace=Conectarse();
  45.      $result=mysql_query($cadena, $enlace); //Aquí está la clave, se ejecuta con MySQL la cadena del insert formada
  46.      mysql_close($enlace);
  47.      }
  48. fclose($handle);
  49.  
  50. ?>
  51.  
  52. <h2>Se insertaron <?php echo $row ?> Registros en la tabla rips_sura</h2>
  53. <?php echo "<META HTTP-EQUIV='Refresh' CONTENT='3;URL=sura.php'>"; ?>
  54. </body>
  55. </html>

yo intenten poniendole este codigo dentro de los while set_time_limit(0); pero continua el problema, ya que mi impresion es que como son tantos registros el mysql se bloquea temporalmnte, sera que hay algun codigo para aumentar el tiempo de ejecucion de los scrips? o que puede ser el problema?
  #2 (permalink)  
Antiguo 06/12/2012, 15:36
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: al ejecutar dos veces la misma tarea se cuelga mysql

Me parece que tendras que editar php.ini , creo recordar algo de... timeout
__________________
Gracias por el Karma :D

empleo ofertas de trabajo

Etiquetas: cuelga, html, mysql, sql, tabla, tarea, veces
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 09:56.