Mysql
 sql >> Database >  >> RDS >> Mysql

Script di dump del database PHP:ci sono problemi?

Quella sceneggiatura ha seri problemi di rottura. Non funzionerà per nessun database tranne il più banale.

  • I valori NULL non sono supportati.
  • I set di caratteri non vengono presi in considerazione.
  • I nomi delle tabelle non sono delimitati.
  • Sono supportate solo le tabelle, non le viste, le procedure memorizzate, i trigger, le funzioni, ecc.
  • addslashes() non è sicuro per i set di caratteri .
  • mysql_query() precarica tutti le righe della tabella, quindi se esegui una query su una tabella con milioni di righe, supererai il limite di memoria PHP. Usa mysql_unbuffered_query() invece. Ripensandoci, vedo che raccogli tutto l'output in $return, quindi questo è discutibile.
  • La tua soppressione degli errori con il @ operatore è una cattiva pratica. Verifica la presenza di errori e fallisci con grazia con un messaggio informativo.

La tua esigenza di non utilizzare mysqldump è assurdo.

Perché lavorare così tanto per te stesso reinventando la ruota e sbagliando ancora? Basta eseguire mysqldump tramite shellexec() .

Vedi anche: