.csv a partir do Excel vs .csv a partir do Libre Office

1

Eu criei um arquivo .csv simples com o Excel, que se parece com isto:

Eu também criei o mesmo arquivo .csv usando o Libre Office.

Ambos os arquivos .csv parecem absolutamente iguais no TextEdit:

id, questions
1, Hello World

No entanto, quando tento importá-los para o banco de dados MySQL no PhpMyAdmin, algo surpreendente está acontecendo. O último arquivo é importado corretamente para o banco de dados. Mas quando tento importar o arquivo antigo para ele, recebo o seguinte erro:

Error
Static analysis:

5 errors were found during analysis.

A symbol name was expected! A reserved keyword can not be used as a column name without backquotes. (near "int" at position 46)
At least one column definition was expected. (near "int" at position 46)
Unexpected beginning of statement. (near "1" at position 50)
Unexpected beginning of statement. (near "'question'" at position 54)
Unrecognized statement type. (near "varchar" at position 65)
SQL query:

CREATE TABLE IF NOT EXISTS 'Sample'.'TABLE 3' ( int(1), 'question' varchar(5), 'keywords' varchar(5), 'answer' varchar(5)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'int(1), 'question' varchar(5), 'keywords' varchar(5), 'answer' varchar(5)) DEFAU' at line 1

Se bem entendi, esse erro ocorre porque o nome da primeira coluna no arquivo .csv é id , que é uma palavra reservada para o banco de dados. No entanto, este erro não ocorre de todo no caso do arquivo .csv que é criado no Libre Office.

Por que isso está acontecendo?

    
por Poete Maudit 19.04.2018 / 15:14

1 resposta

1

A ideia de @Máté Juhász em relação ao editor hexadecimal foi muito boa.

O arquivo .csv do Excel exibe o seguinte conteúdo no editor hexadecimal:

Ôªøid,name
1,hello

enquanto o arquivo .csv do Libre Office exibe o seguinte:

id,name
1,Hello

Obviamente, posso usar o Libre Office para essa tarefa como sempre fiz até agora; Eu simplesmente queria que dois aproveitassem funções úteis no Excel.

No entanto, finalmente, descobri que estava recebendo esse "bug" na codificação .csv padrão do Excel, que é CSV UTF-8 (Comma delimited) (.csv) , mas não estou entendendo se eu mudar para a codificação Comma-Separated Values (.csv) .

Por fim, deixe-me observar que concordo com @Pimp Juice IT que a forma como o arquivo .csv do Excel foi codificado era como esquecer de definir o nome da primeira coluna da tabela no banco de dados. Mas eu queria encontrar uma explicação por que isso está acontecendo no nível do Excel.

    
por 19.04.2018 / 16:19