Como ler arquivo TXT com PHP e salvar no banco de dados com MySQLi


Nesta vídeo aula será apresentado como ler o arquivo TXT com PHP e salvar as informações do arquivo no banco de dados com MySQLi.

Será criado o formulário com o campo input para fazer upload do arquivo TXT.

Em seguida o arquivo PHP responsável em ler os dados do arquivo TXT e salvar no banco de dados.

Para salvar no banco de dados será apresentado como fazer conexão no banco de dados com PHP e MySQLi.

 

 

Download do código fonte desenvolvido na aula: DOWNLOAD

 

Modelo de arquivo a ser importado.

 

Cesar, cesar@celke.com.br, cesar, 123456
Kelly, kelly@celke.com.br, kelly, 123457
Jessica, jessica@celke.com.br, jessica, 123458

 

Primeiro será criado o formulário com HTML, incluído a propriedade ‘enctype="multipart/form-data"’ para o formulário manipular arquivos. O formulário vai possuir o campo para fazer upload do arquivo com PHP. Para este exemplo será criado o arquivo “index.php”, com o código abaixo.

 

<?php
session_start(); //Inicializar a sessão com PHP
?>
<!DOCTYPE html>
<html lang="pt-br">
	<head>
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
		<title>Importar TXT</title>
	</head>
	<body>
		<!--Titulo do Formulário-->
		<h1>Importar dados do arquivo TXT</h1>
		<?php
		//Imprimir a mensagem de sucesso no upload de dados do arquivo txt para o banco de dados com mysqli
		if(isset($_SESSION['msg'])){
			//Imprimir o valor da sessão
			echo $_SESSION['msg'];
			//Destruir a sessão com PHP
			unset($_SESSION['msg']);
		}
		?>
		<!--Formulário com PHP para fazer upload de arquivo com PHP-->
		<form method="POST" action="processa.php" enctype="multipart/form-data">
			<label>Arquivo</label>
			<!--Campo para fazer o upload do arquivo com PHP-->
			<input type="file" name="arquivo"><br><br>			
			<input type="submit" value="Importar">
		</form>
	</body>
</html>

 

Em seguida será criado o arquivo “processa.php” para receber os dados do formulário. Neste arquivo será incluído a conexão com o banco de dados utilizando o include_once("conexao.php");. Em seguida será recebido o arquivo recuperando o nome temporário com o qual o arquivo enviado foi armazenado no servidor, através do $_FILES['arquivo']['tmp_name'];. Após receber os dados necessário ler todo o arquivo para um array utilizando file().

Com os dados do arquivo em um array, necessário criar o foreach para ler os dados do array. Dentro do foreach, primeiro será utilizado o trim para retirar os espaços em branco no início e no final da string. Essa string tem os dados separados pela virgula, por exemplo “Cesar, cesar@celke.com.br, cesar, 123456”, tendo os dados separado pela virgula, cada virgula indica que é um dados que deve ser salvo em uma coluna, com isso será utilizado a virgula para separar um posição no array, utilizando o explode(',', $linha); e atribuindo o resultado para a variável $valor.

Em função da variável $valor ter um array, agora somente para recuperar colocar a posição do array, e atribuir para uma variável, por exemplo, $nome = $valor[0]; pegar a primeira posição do array atribuir para a variável “$nome”.

Com o valor recuperado somente criar a QUERY INSERT para inserir os dados no banco de dados utilizando o MySQLi.

Para finalizar criar a variável global em PHP $_SESSION['msg'] e atribuir a mensagem de sucesso, com personalização do CSS INLINE. Em seguida fazer o redirecionamento com PHP utilizando o header("Location: index.php"); e indicando para qual arquivo o usuário será redirecionado.

 

<?php
session_start();//Inicializar a sessão com PHP

//Incluir a conexao com BD
include_once("conexao.php");

//Receber os dados do formulário
$arquivo_tmp = $_FILES['arquivo']['tmp_name'];

//ler todo o arquivo para um array
$dados = file($arquivo_tmp);

//Ler os dados do array
foreach($dados as $linha){
	//Retirar os espaços em branco no inicio e no final da string
	$linha = trim($linha);
	//Colocar em um array cada item separado pela virgula na string
	$valor = explode(',', $linha);
	
	//Recuperar o valor do array indicando qual posição do array requerido e atribuindo para um variável
	$nome = $valor[0];
	$email = $valor[1];
	$usuario = $valor[2];
	$senha = $valor[3];
	
	//Criar a QUERY com PHP para inserir os dados no banco de dados
	$result_usuario = "INSERT INTO usuarios (nome, email, usuario, senha) VALUES ('$nome', '$email', '$usuario', '$senha')";
	
	//Executar a QUERY para inserir os registros no banco de dados com MySQLi
	$resultado_usuario = mysqli_query($conn, $result_usuario);	
}
//Criar a variável global com a mensagem de sucesso
$_SESSION['msg'] = "<p style='color: green;'>Carregado os dados com sucesso!</p>";
//Redirecionar o usuário com PHP para a página index.php
header("Location: index.php");

 

Para salvar os dados com PHP e MySQLi necessário criar a base de dados “celke”, em seguida fazer a conexão com o banco de dados utilizando o PHP e MySQLi. Para fazer a conexão será criado o arquivo “conexao.php” e colocado o código abaixo.

 

<?php
//Nome do servidor que está o banco de dados
$servidor = "localhost";
//Usuário do banco de dados
$usuario = "root";
//Senha do banco de dados
$senha = "";
//Nome da base de dados
$dbname = "celke";

//Criar a conexao com MySQLi
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);

 

Com a base pronta e a conexão, necessário criar a tabela “usuarios”, com as colunas “id, nome, e-mail, usuário, senha”. Para criar pode ser executado o código abaixo no seu gerenciador de banco de dados, no exemplo está sendo utilizado o phpMyAdmin.

 

CREATE TABLE `usuarios` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `nome` varchar(220) NOT NULL,
  `email` varchar(220) NOT NULL,
  `usuario` varchar(120) NOT NULL,
  `senha` varchar(120) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

Portanto, neste tutorial foi apresentado como ler os dados do arquivo TXT, salvar no banco de dados as informações contidas no arquivo.