##O Problema
Preciso resolver um problema relacionado à gravação em banco de dados MYSQL a partir de um arquivo CSV. O problema, s.m.j., está na cláusula SQL negritada abaixo (arquivo “importa-ltm-resultados.php”). O curioso é que utilizando essa mesma sintaxe / modelo de cláusula eu consegui gravar corretamente um outro arquivo CSV em um outro banco de dados / tabela (a diferença é que os campos gravados / exportados eram todos VARCHAR). A única coisa que me chamou a atenção é o fato de haver um espaço em branco ao final do último campo na cláusula SQL (pelo comando Echo me parece isto) que não sei como eliminá-lo. Creio que o problema possa estar relacionado ao campo DATA. Abaixo segue o SQL da tabela onde estou tentando gravar, assim como, o arquivo CSV. A propósito, não consegui de jeito nenhum salvar a data no arquivo CSV no formato AAAA-MM-DD, por isso, editei-a fora do excel para o formato “AAAA-MM-DD”. Enfim, sou iniciante em PHP mas tenho boa noção de lógica de programação e banco de dados, mas o problema em questão é algum detalhe que está além da minha condição atual de entendimento.
importa-ltm-resultados.php
<?php
$strcon = mysqli_connect('localhost','root','teste','loteria') or die('Erro ao conectar ao banco de dados loteria');
$arquivo = fopen ('ltm-resultados.csv', 'r');
$cont = 0;
while(!feof($arquivo))
{
$linha = fgets($arquivo, 1024);
$dados = explode(';', $linha);
Print_r ($dados);
// Pega a data no formato dd/mm/yyyy do arquivo CSV
// $data2 = $dados[1];
// Explode a data para entrar no formato aceito pelo DB
// $dataeditada = explode('/', $data2);
// $datadb = $dataeditada[2].'-'.$dataeditada[1].'-'.$dataeditada[0];
if ($dados[0] != "0" && !empty($linha))
{
$cont = $cont +1;
<b> $sql = "INSERT INTO ltm-resultados VALUES ";
$sql .= "($dados[0], $dados[1], $dados[2], $dados[3], $dados[4], $dados[5], $dados[6], $dados[7], $dados[8], $dados[9], $dados[10], $dados[11], $dados[12], $dados[13], $dados[14], $dados[15], $dados[16], $dados[17], $dados[18], $dados[19], $dados[20], $dados[21])";</b>
echo $sql.$cont;
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar o registro");
}
}
fclose($arquivo);
echo "Gravados ".$cont." registros";
?>
<b>SQL de criação da tabela</b>
CREATE TABLE `ltm-resultados` (
`concurso` int(4) NOT NULL,
`data` date NOT NULL,
`dz1` int(2) NOT NULL,
`dz2` int(2) NOT NULL,
`dz3` int(2) NOT NULL,
`dz4` int(2) NOT NULL,
`dz5` int(2) NOT NULL,
`dz6` int(2) NOT NULL,
`dz7` int(2) NOT NULL,
`dz8` int(2) NOT NULL,
`dz9` int(2) NOT NULL,
`dz10` int(2) NOT NULL,
`dz11` int(2) NOT NULL,
`dz12` int(2) NOT NULL,
`dz13` int(2) NOT NULL,
`dz14` int(2) NOT NULL,
`dz15` int(2) NOT NULL,
`dz16` int(2) NOT NULL,
`dz17` int(2) NOT NULL,
`dz18` int(2) NOT NULL,
`dz19` int(2) NOT NULL,
`dz20` int(2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Resultados da lotomania';
-- Indexes for dumped tables
-- Indexes for table `ltm-resultados`
ALTER TABLE `ltm-resultados`
ADD PRIMARY KEY (`concurso`),
ADD UNIQUE KEY `data` (`data`);
###Arquivo CSV de teste
1;1999-10-02;16;11;88;32;25;0;70;78;73;61;90;89;46;95;6;33;34;21;14;22
2;1999-10-09;76;63;18;44;84;11;55;93;8;29;82;62;17;64;24;14;37;97;49;51
3;1999-10-16;34;8;10;11;99;28;67;20;55;74;45;48;85;91;79;57;47;22;17;54
4;1999-10-23;14;67;12;55;25;60;51;30;41;35;78;83;93;64;98;39;44;49;5;63
5;1999-10-30;39;32;65;8;51;42;17;92;43;71;28;73;98;69;59;54;20;87;99;0