Eu recomendo que você use "LOAD DATA INFILE" Sql Query em vez de shell_exec com mysqlimport: link
Eu tenho uma necessidade na minha aplicação PHP (usando o Zend Framework para o que importa), para importar um arquivo CSV para um banco de dados MySQL.
Atualmente faço isso usando shell_exec()
para executar um comando myysqlimport
para importar o arquivo com êxito. Para fazer isso funcionar, tive que adicionar set-variable=local-infile=1
ao meu /etc/my.cnf
. Eu também concedi File_priv
dentro do MySQL para o usuário que eu executei o script.
No entanto, eu entendo que isso pode não ser seguro. Qual é a maneira correta de permitir que mysqlimport
seja executado com segurança, para apenas um usuário?
Estou usando o MySQL versão 5.0.77 em um servidor CentOS Linux, com o PHP 5.2.12.
Eu recomendo que você use "LOAD DATA INFILE" Sql Query em vez de shell_exec com mysqlimport: link