Pessoal, mais um erro estranho…
Eu estou pegando informações de um arquivo css para poder importar para um banco MySQL… parece que estou tendo problemas em importar decimais…
O arquivo CSS está assim:
ELEMENTAR,PRECO
“00001”,“54”
“00002”,“7.35”
“00003”,“7.969”
“00004”,“3.616”
“00005”,“6.41”
“00006”,“8.98”
“00007”,“1.829”
Eu ajustei o programa para não ler a primeira linha, do cabeçalho…
Os dados estão chegando ok, conforme observamos no código:
$handle = fopen($uploadfile,“r”);
while (($data = fgetcsv($handle,1000,",",’"’)) !== FALSE)
{
if(trim($data[0])!=“ELEMENTAR”)
{
$insert_sql = “INSERT INTO tb_emop_elementar (emel_tx_versao, emel_tx_elementar, emel_vl_preco) VALUES (’”.$tx_versao."’,’" . $data[0] . “’,” . $data[1].");";
//$uploadfile e $tx_versão referen-se, respectivamente, ao nome do arquivo csv e a versão dele
sc_exec_sql($insert_sql);
}
}
O sql fica assim: INSERT INTO tb_emop_elementar (emel_tx_versao, emel_tx_elementar, emel_vl_preco) VALUES (‘0416’,‘00001’,54);
Acontece que quando eu jogo isso direto no banco mysql o código funciona normalmente, mas por dentro do ScriptCase, não!
Ele só funciona se eu RETIRAR emel_vl_preco e o seu valor da string SQL… muito louco isso… já tentei colocar o valor entre aspas simples, tudo em aspas duplas, os dados de texto em aspas duplas, etc… o banco, no campo emel_vl_preco está como decimal (21,4) ou seja, está com 4 casas decimais… eu vou precisar completar as 4 casas decimais??? Já tentei também colocar a formatação de número com vírgula e, claro, deu erro…
Será um bug do scriptcase ou eu que estou ficando maluco?