Boa a tarde pessoal tudo bem?
Criei uma rotina na aplicação controle para importar um arquivo CSV para o banco de dados MySQL, funcionando perfeito, no entanto, quando tem registros em branco ele não importa.
Segue o arquivo CSV:
NB;ESP;TITULAR;CPF;DATA_NASCIMENTO;ENDERECO;BAIRRO;CIDADE;UF;CEP;TEL1;TEL2;TEL3;TEL4;TEL5;TEL6;TEL7;TEL8;TEL9;TEL10
1026967489;42;"IZEMAR DE OLIVEIRA ";130538174;22/12/1956;“RUA SETE DE SETEMBRO 66”;CENTRO;“SANTO ANTONIO”;RN;59255000;843219626;8432822212;84988092212;84988092220;;;;;;;
Segue a Rotina:
$caminho = $this->Ini->path_doc;
$arq = $caminho.’/’.{arquivo};
$delimitador = ‘;’;
$cerca = ‘"’;
//$_Cerca = ‘’;
$cadastrados=0;
// Abrir arquivo para leitura
$f = fopen($arq, ‘r’);
if ($f) {
// Ler cabecalho do arquivo
$cabecalho = fgetcsv($f, 0, $delimitador, $cerca);
// Enquanto nao terminar o arquivo
while (!feof($f)) {
// Ler uma linha do arquivo
$linha = fgetcsv($f, 0, $delimitador, $cerca);
if (!$linha) {
continue;
}
// Montar registro com valores indexados pelo cabecalho
$registro = array_combine($cabecalho, $linha);
// Obtendo campos do CSV
// Olhar no Sseu CSV como estão os NOMES CABEÇALHO dos campos e colocar [‘NOME_CAMPO’]
$_NB = $registro[‘NB’];
$_ESP = $registro[‘ESP’];
$_TITULAR = $registro[‘TITULAR’];
$_CPF = $registro[‘CPF’];
$_DATA_NASCIMENTO = $registro[‘DATA_NASCIMENTO’];
$_ENDERECO = $registro[‘ENDERECO’];
$_BAIRRO = $registro[‘BAIRRO’];
$_CIDADE = $registro[‘CIDADE’];
$_UF = $registro[‘UF’];
$_CEP = $registro[‘CEP’];
$_TEL1 = $registro[‘TEL1’];
$_TEL2 = $registro[‘TEL2’];
$_TEL3 = $registro[‘TEL3’];
$_TEL4 = $registro[‘TEL4’];
$_TEL5 = $registro[‘TEL5’];
$_TEL6 = $registro[‘TEL6’];
$_TEL7 = $registro[‘TEL7’];
$_TEL8 = $registro[‘TEL8’];
$_TEL9 = $registro[‘TEL9’];
$_TEL10 = $registro[‘TEL10’];
/* $_EMAIL = $registro[‘EMAIL’];
$_BANCO = $registro[‘BANCO’];
$_AGENCIA = $registro[‘AGENCIA’];
$_CONTA = $registro[‘CONTA’];
$_MR = $registro[‘MR’];
$_TIPO_EMPRESTIMO = $registro[‘TIPO EMPRESTIMO’];
$_BANCO_EMPRESTIMO = $registro[‘BANCO EMPRESTIMO’];
$_VALOR_PARCELA_RESERVADO = $registro[‘VALOR PARCELA/RESERVADO’];
$_CONTRATO = $registro[‘N CONTRATO’];
$_PRAZO_RESTANTE = $registro[‘PRAZO RESTANTE’];
$_PRAZO_CONTRATADO = $registro[‘PRAZO CONTRATADO’];
$_SALDO_DEVEDOR = $registro[‘SALDO DEVEDOR’];
$_VALOR_CONTRATO = $registro[‘VALOR CONTRATO/LIMITE’];
$_RMC = $registro[‘RMC’];
$_MARGEM_EMPRESTIMO = $registro[‘MARGEM EMPRESTIMO’];
$_MARGEM_CARTAO = $registro[‘MARGEM CARTAO’];*/
$insert_table = 'upload'; // Nome da Tabela
$insert_fields = array(
'NB' => "'$_NB'",
'ESP' => "$_ESP",
'TITULAR' => "'$_TITULAR'",
'CPF' => "$_CPF",
'DATA_NASCIMENTO' => "$_DATA_NASCIMENTO ",
'ENDERECO' => "'$_ENDERECO'",
'BAIRRO' => "'$_BAIRRO'",
'CIDADE' => "'$_CIDADE'",
'UF' => "'$_UF'",
'CEP' => "'$_CEP'",
'TEL1' => "'$_TEL1'",
'TEL2' => "'$_TEL2'",
'TEL3' => "'$_TEL3'",
'TEL4' => "'$_TEL4'",
'TEL5' => "'$_TEL5'",
'TEL6' => "'$_TEL6'",
'TEL7' => "'$_TEL7'",
'TEL8' => "'$_TEL8'",
'TEL9' => "'$_TEL9'",
'TEL10' => "$_TEL10"
/*'EMAIL' => "'$_EMAIL'",
'BANCO' => "'$_BANCO'",
'AGENCIA' => "'$_AGENCIA'",
'CONTA' => "'$_CONTA'",
'MR' => "'$_MR'",
'TIPO EMPRESTIMO' => "'$_TIPO_EMPRESTIMO'",
'BANCO EMPRESTIMO' => "'$_BANCO_EMPRESTIMO'",
'VALOR PARCELA/RESERVADO' => "'$_VALOR_PARCELA_RESERVADO'",
'N CONTRATO' => "'$_CONTRATO'",
'PRAZO RESTANTE' => "'$_PRAZO_RESTANTE'",
'PRAZO CONTRATADO' => "'$_PRAZO_CONTRATADO'",
'SALDO DEVEDOR' => "'$_SALDO_DEVEDOR'",
'VALOR CONTRATO/LIMITE' => "'$_VALOR_CONTRATO'",
'RMC' => "'$_RMC'",
'MARGEM EMPRESTIMO' => "'$_MARGEM_EMPRESTIMO'",
'MARGEM CARTAO' => "$_MARGEM_CARTAO",*/
);
// Inserir registro
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
sc_exec_sql($insert_sql);
$cadastrados++;
}
fclose($f);
}
if ($cadastrados==0) {
sc_error_message(“Não há registros a atualizar, verifique”);
} else {
sc_error_message("Registros cadastrados: " . $cadastrados);
}
Segue o Erro:
array_combine(): Both parameters should have an equal number of elements
Erro ao acessar o banco de dados
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’ ‘’, , , ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, )’ at line 1
{SC_DB_ERROR_INI}View SQL{SC_DB_ERROR_MID}INSERT INTO upload (NB, ESP, TITULAR, CPF, DATA_NASCIMENTO, ENDERECO, BAIRRO, CIDADE, UF, CEP, TEL1, TEL2, TEL3, TEL4, TEL5, TEL6, TEL7, TEL8, TEL9, TEL10) VALUES (’’, , ‘’, , , ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ){SC_DB_ERROR_CLS}Close{SC_DB_ERROR_END}