Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Script de despejo de banco de dados PHP - há algum problema?


Esse script tem sérios problemas de quebra de acordo. Não funcionará para nenhum, mas para o banco de dados mais trivial.
  • NULLs não são compatíveis.
  • Os conjuntos de caracteres não são considerados.
  • Os nomes das tabelas não são delimitados.
  • Somente tabelas são suportadas -- não visualizações, procedimentos armazenados, gatilhos, funções, etc.
  • addslashes() não é seguro para conjunto de caracteres .
  • mysql_query() pré-busca todos as linhas da tabela, portanto, se você consultar uma tabela com milhões de linhas, excederá seu limite de memória PHP. Use mysql_unbuffered_query() em vez de. Pensando bem, vejo que você coleta toda a saída em $return, então isso é discutível.
  • Sua supressão de erros com o @ operador é uma má prática. Verifique se há erros e falhe normalmente com uma mensagem informativa.

Sua exigência de não usar mysqldump é absurda.

Por que fazer tanto trabalho para reinventar a roda e ainda errar tanto? Basta executar o mysqldump via shellexec() .

Veja também: