Commit df46f118915755da442336aacd938e27d28ad870

Authored by André Mácola
1 parent 5db27aea
Exists in master

arquivo de instalacao do banco de dados estava faltando

Showing 1 changed file with 91 additions and 0 deletions   Show diff stats
inc/instalacaoBD.php 0 → 100644
... ... @@ -0,0 +1,91 @@
  1 +<?php
  2 +ini_set ('memory_limit', '-1');
  3 +ini_set ('max_execution_time', 300);
  4 +
  5 +function inserirBD($sql, $valores, $cx)
  6 +{
  7 + $valores = substr($valores, 0, -1);
  8 +
  9 + // Executando comando
  10 + return $cx->query($sql.$valores);
  11 +}
  12 +
  13 +function instalarBD($arquivos, $cx)
  14 +{
  15 + $erros = '';
  16 +
  17 + // Percorrendo arquivos
  18 + foreach ($arquivos as $arquivo)
  19 + {
  20 + // Verificando a existencia do arquivo
  21 + if(!is_file($arquivo))
  22 + {
  23 + $erros .= "<p>O arquivo {$arquivo} não existe.</p>";
  24 + continue;
  25 + }
  26 +
  27 + // Convertendo o arquivo
  28 + $json = json_decode( file_get_contents( $arquivo ), true );
  29 + if(!$json)
  30 + {
  31 + $erros .= "<p>O arquivo {$arquivo} está corrompido.</p>";
  32 + continue;
  33 + }
  34 +
  35 + if(
  36 + !isset($json['tabela']) ||
  37 + !isset($json['colunas']) ||
  38 + !isset($json['valores'])
  39 + ){
  40 + $erros .= "<p>O arquivo {$arquivo} não está no formato adequado.</p>";
  41 + continue;
  42 + }
  43 +
  44 + // Montando SQL
  45 + $colunas = implode('`, `', $json['colunas']);
  46 + $sql = "INSERT INTO `{$json['tabela']}` (`{$colunas}`) VALUES ";
  47 +
  48 + // Iniciando transição
  49 + $cx->autocommit(false);
  50 +
  51 + // Percorrendo valores
  52 + $i = 1;
  53 + $valores = '';
  54 + foreach ($json['valores'] as $valor)
  55 + {
  56 + $valores.= '("'. implode('","', $valor) .'"),';
  57 +
  58 +
  59 + if($i < 1000) {
  60 + $i++;
  61 + continue;
  62 + }
  63 +
  64 + if(!inserirBD($sql, $valores, $cx))
  65 + {
  66 + $valores = '';
  67 + $erros .= "<p>Ocorreu a seguinte falha no arquivo {$arquivo}: {$cx->error}</p>";
  68 + break;
  69 + }
  70 +
  71 + $valores = '';
  72 + $i = 1;
  73 + }
  74 +
  75 + // Verificando o restante
  76 + if($valores && !inserirBD($sql, $valores, $cx))
  77 + {
  78 + $erros.= "<p>Ocorreu a seguinte falha no arquivo {$arquivo}: {$cx->error}</p>";
  79 + break;
  80 + }
  81 + }
  82 +
  83 + if($erros) {
  84 + $cx->rollback();
  85 + return $erros;
  86 + } else {
  87 + $cx->commit();
  88 + return '<p>Dados inseridos com sucesso</p>';
  89 + }
  90 +}
  91 +?>
0 92 \ No newline at end of file
... ...