Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Ler um arquivo csv e tentar converter a data - Erro O Código abaixo é pra ler um arquivo csv e grava na tabela Títular, porém dá erro na hora de gravar a data de nascimento, daí eu comentei o trecho, outra coisa é que como tem mais ou menos 11.000 linhas ele só grava quatrocentos e pouco e dá o seguinte erro: "Fatal error: Maximum execution time of 30 seconds exceeded in C:Vertrigowwwsisbs_testelibadiantidatabaseTTransaction.php on...
MO
Ler um arquivo csv e tentar converter a data - Erro  
O Código abaixo é pra ler um arquivo csv e grava na tabela Títular, porém dá erro na hora de gravar a data de nascimento, daí eu comentei o trecho, outra coisa é que como tem mais ou menos 11.000 linhas ele só grava quatrocentos e pouco e dá o seguinte erro:
"Fatal error: Maximum execution time of 30 seconds exceeded in C:Vertrigowwwsisbs_testelibadiantidatabaseTTransaction.php on line 129";
Precisando urgente de ajuda, alguém se habilita?

  1. <?php
  2. class ImportarTitularForm extends TPage
  3. {
  4.     private $form;
  5.     private $datagrid;
  6.     
  7.     private static $DIR_ARQUIVO '/tmp/';
  8.     
  9.     public function __construct()
  10.     {
  11.         parent::__construct();
  12.         
  13.         $this->form = new BootstrapFormBuilder('form_documentos');
  14.         $this->form->setFormTitle('Documentos');
  15.     
  16.         $this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
  17.         $this->datagrid->width '100%';        
  18.         
  19.         $id = new TEntry('id');
  20.         $arquivo = new TFile('arquivo');
  21.         $descricao = new TEntry('descricao');
  22.         
  23.         //$descricao->addValidation('Descrição do Arquivo',  new TRequiredValidator);
  24.         $descricao->setSize('100%');
  25.         $id->setSize('100%');
  26.         $arquivo->setSize('100%');
  27.         
  28.         // labels
  29.         $lbl_id = new TLabel('ID');
  30.         $lbl_descricao = new TLabel('Descrição');
  31.         $lbl_arquivo = new TLabel('arquivo');
  32.         
  33.         $row1 $this->form->addFields([$lbl_id$id]);
  34.         $row1->layout = ['col-md-2'];
  35.         
  36.         $row2 $this->form->addFields([$lbl_descricao$descricao]);
  37.         $row2->layout = ['col-md-12'];
  38.         
  39.         $row3 $this->form->addFields([$lbl_arquivo$arquivo]);
  40.         $row3->layout = ['col-md-12'];
  41.         
  42.         // grid
  43.         $column_id = new TDataGridColumn('id','ID','center');
  44.         $column_descricao = new TDataGridColumn('descricao','Descrição','left');
  45.         $column_caminho = new TDataGridColumn('caminho','Caminho','left');
  46.         
  47.         $this->datagrid->addColumn($column_id);
  48.         $this->datagrid->addColumn($column_descricao);
  49.         $this->datagrid->addColumn($column_caminho);
  50.         $this->datagrid->createModel();
  51.         
  52.         
  53.         // add the search form actions
  54.         $btn $this->form->addAction('Salvar', new TAction(array($this'onSave')), 'fa:disk');
  55.         $btn->class 'btn btn-sm btn-primary';        
  56.         // vertical box container
  57.         $container = new TVBox;
  58.         $container->style 'width: 90%';
  59.         //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  60.         $container->add($this->form);
  61.         $container->add($this->datagrid);
  62.         parent::add($container);
  63.     }
  64.     
  65.     public function onSave$param )
  66.     {
  67.             
  68.             try
  69.             {
  70.             $data $this->form->getData();
  71.             //$source_file   = 'tmp/'.$doc->arquivo;
  72.             $nome_arquivo $param['arquivo']; //'tmp/'.$param['filename'];
  73.             $objeto fopen('tmp/SOLICITANTES.CSV','r');
  74.             
  75.             $cabecalho FALSE;
  76.     
  77.                 while(($dados fgetcsv($objeto,1000,',')) !==false)
  78.                 {
  79.                     TTransaction::open('permission'); // open a transaction            
  80.                     if($cabecalho)
  81.                     {   
  82.                         $titular = new Titular;  
  83.                         //print $dados[6];
  84.                         $titular->id $dados[0];
  85.                         $titular->nome $dados[1];
  86.                         $titular->cpf $dados[2];
  87.                         $titular->nis $dados[3];
  88.                         $titular->celular1 $dados[4];
  89.                         $titular->celular2 $dados[5];
  90.                         
  91.                         $datnasc strtotime(str_replace("/","-",'11/11/11'));
  92.                         /*
  93.                         //garante que o array possue tres elementos (dia, mes e ano)
  94.                         if($datnasc <> trim('null'))
  95.                         {
  96.                                 //cria um array
  97.                                 $array = explode('/', $datnasc);
  98.                             if(count($array) == 3){
  99.                                $dia = (int)$array[0];
  100.                                $mes = (int)$array[1];
  101.                                $ano = (int)$array[2];
  102.                                 
  103.                                //testa se a data é válida
  104.                                 
  105.                                if(checkdate($mes, $dia, $ano)){
  106.                                   $titular->datnasc = strtotime(str_replace("/","-",$dados[6]));
  107.                                }
  108.                             }
  109.                           } 
  110.                         */                         
  111.                         //if ($dados[6] <> 'NULL')
  112.                         //{
  113.                         //    $titular->datnasc = date($dados[6]);
  114.                         //}
  115.                         
  116.                             
  117.                         $titular->pai $dados[7];
  118.                         $titular->mae $dados[8];
  119.                         $titular->identidade $dados[9];
  120.                         ////////////////////////////////////////////////////////////////////////////
  121.                         $titular->situacao_trab_id=1;
  122.                         $titular->escolaridade_id=1;
  123.                         $titular->ocupacaoprof_id=1;
  124.                         $titular->tipo_nec_esp_id=1;
  125.                         $titular->tempo_trabalho_id=1;
  126.                         $titular->renda_mensal_id=1;
  127.                         $titular->estado_civil_id=1;
  128.                         $titular->beneficio_id=1;
  129.                         $titular->sitconjugal_id=1;
  130.                         $titular->bairro_id=1;
  131.                         $titular->logradouro_id=1;
  132.                         $titular->rendatotal=1;
  133.                         $titular->renda_comp_id=1;
  134.                         $titular->observacao='';
  135.                         $titular->qtde_comodos_id=1;
  136.                         $titular->tempo_moradia_id=1;
  137.                         $titular->elim_dejetos_id=1;
  138.                         $titular->sit_fornec_id=1;
  139.                         $titular->numero_familias_habit_id=1;
  140.                         $titular->estado_habitacao_id=1;
  141.                         $titular->risco_localizacao_id=1;
  142.                         $titular->unidade_sanitaria_id=1;
  143.                         $titular->telefone_id=1;
  144.                         $titular->tempono_munic_id=1;
  145.                         $titular->energia_eletrica_id=1;
  146.                         $titular->uso_imovel_id=1;
  147.                         $titular->caracterisca_imov_id=1;
  148.                         $titular->transporte_id=1;
  149.                         $titular->ilum_publica_id=1;
  150.                         $titular->tipo_imovel_id=1;
  151.                         $titular->trat_dagua_id=1;
  152.                         $titular->destino_lixo_id=1;
  153.                         $titular->forma_ocupacao_id=1;
  154.                         $titular->local_banheiro_id=1;
  155.                         $titular->abast_dagua_id=1;        
  156.                                     
  157.                         ////////////////////////////////////////////////////////////////////////////
  158.     
  159.                         
  160.                         $titular->store();
  161.                         
  162.                     }
  163.                     $cabecalho=TRUE;
  164.                     TTransaction::close(); // close the transaction
  165.                 }    
  166.     
  167.             }
  168.             catch (Exception $e// in case of exception
  169.             {
  170.                 new TMessage('error'$e->getMessage()); // shows the exception error message
  171.                 TTransaction::rollback(); // undo all pending operations
  172.             }
  173.         }
  174.     
  175.     /**
  176.      * Carrega a grid com dados do BD
  177.      */
  178.     public function onReload$param )
  179.     {
  180.         try {
  181.             TTransaction::open('app');
  182.             $key $param['key'];
  183.             $doc Documento::where('id','=',$key)->load();
  184.             
  185.             foreach($docs as $doc) {
  186.                 $obj = new stdClass;
  187.                 $obj->id $doc->id;
  188.                 $obj->descricao $doc->descricao;
  189.                 $obj->caminho $doc->caminho;
  190.                 $this->datagrid->addItem($obj);
  191.             }
  192.             TTransaction::close();
  193.         } catch (Exception $e) {
  194.             new TMessage('error',$e->getMessage());
  195.         }
  196.     }
  197.     
  198.     public function onEdit($param
  199.     {
  200.         try {
  201.             TTransaction::open('app');
  202.             $key $param['key'];
  203.             $doc Documento($key);
  204.             $obj = new stdClass;
  205.             $obj->id $doc->id;
  206.             $obj->descricao $doc->descricao;
  207.             $obj->caminho $doc->caminho;
  208.             $this->form->setData($obj);
  209.             $this->onReload($param);
  210.             TTransaction::close();
  211.         } catch (Exception $e) {
  212.             new TMessage('error',$e->getMessage());
  213.         }
  214.     }
  215. }
  216. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


MG

Erro da data, você precisar saber como esta informação está no arquivo e converter para o formato do banco. No caso do time-out, é normal pois existe um tempo limite padrão.
Para resolver o problema do timeout use o seguinte:
ini_set('max_execution_time', 0);

Isso fará que o timeout seja desconsiderado.
Este comento deve colocado antes do inicio do processo de leitura do arquivo.