From df46f118915755da442336aacd938e27d28ad870 Mon Sep 17 00:00:00 2001 From: André Mácola Date: Thu, 28 Jan 2016 23:26:20 -0300 Subject: [PATCH] arquivo de instalacao do banco de dados estava faltando --- inc/instalacaoBD.php | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+), 0 deletions(-) create mode 100644 inc/instalacaoBD.php diff --git a/inc/instalacaoBD.php b/inc/instalacaoBD.php new file mode 100644 index 0000000..e7dd259 --- /dev/null +++ b/inc/instalacaoBD.php @@ -0,0 +1,91 @@ +query($sql.$valores); +} + +function instalarBD($arquivos, $cx) +{ + $erros = ''; + + // Percorrendo arquivos + foreach ($arquivos as $arquivo) + { + // Verificando a existencia do arquivo + if(!is_file($arquivo)) + { + $erros .= "

O arquivo {$arquivo} não existe.

"; + continue; + } + + // Convertendo o arquivo + $json = json_decode( file_get_contents( $arquivo ), true ); + if(!$json) + { + $erros .= "

O arquivo {$arquivo} está corrompido.

"; + continue; + } + + if( + !isset($json['tabela']) || + !isset($json['colunas']) || + !isset($json['valores']) + ){ + $erros .= "

O arquivo {$arquivo} não está no formato adequado.

"; + continue; + } + + // Montando SQL + $colunas = implode('`, `', $json['colunas']); + $sql = "INSERT INTO `{$json['tabela']}` (`{$colunas}`) VALUES "; + + // Iniciando transição + $cx->autocommit(false); + + // Percorrendo valores + $i = 1; + $valores = ''; + foreach ($json['valores'] as $valor) + { + $valores.= '("'. implode('","', $valor) .'"),'; + + + if($i < 1000) { + $i++; + continue; + } + + if(!inserirBD($sql, $valores, $cx)) + { + $valores = ''; + $erros .= "

Ocorreu a seguinte falha no arquivo {$arquivo}: {$cx->error}

"; + break; + } + + $valores = ''; + $i = 1; + } + + // Verificando o restante + if($valores && !inserirBD($sql, $valores, $cx)) + { + $erros.= "

Ocorreu a seguinte falha no arquivo {$arquivo}: {$cx->error}

"; + break; + } + } + + if($erros) { + $cx->rollback(); + return $erros; + } else { + $cx->commit(); + return '

Dados inseridos com sucesso

'; + } +} +?> \ No newline at end of file -- libgit2 0.21.2