Jakiś czas temu zbudowałem na potrzeby własne taki interfejs do aktualizacji danych/stron zakładania kont "dev", ładowania plików z repo i jednocześnie wprowadzający wszystkie potrzebne zmiany w bazach danych itd.
Po załadowaniu bazy danych wywala mi błąd zamiast wrócić do procesu i kontynuować instalowanie danych.

Tu pytanie: jak z poziomu php zaimportować bazę danych?
w tej chwili zrobiłem tak:
(otwieram shell i odpalam ładowanie bazy)

  1.  
  2. function importSql($database,$filename)
  3. {
  4. $mysqlDatabaseName = $database;
  5. $mysqlUserName = 'myuser';
  6. $mysqlPassword = 'mypassword';
  7. $mysqlHostName = 'localhost';
  8. $mysqlImportFilename = '/var/www/install/sql/'.$database.'/'.$filename;
  9. $command = 'mysql --user=' .$mysqlUserName .' --password="' .$mysqlPassword .'" ' .$mysqlDatabaseName .' < ' . escapeshellarg($mysqlImportFilename);
  10. exec($command,$output,$worked);
  11. switch($worked){
  12. case 0:
  13. $result_message .= '<p>The data from the file <b>' .$mysqlImportFilename .'</b> were successfully imported into the database <b>' .$mysqlDatabaseName .'</b></p>';
  14. break;
  15. case 1:
  16. $result_message .= '<div>An error occurred during the import. Please check if the file is in the same folder as this script. Also check the following data again:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Dateiname:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table></div>';
  17. break;
  18. }
  19. return ;
  20. }
  21.  

i po załadowaniu bazy dostaję tylko to: Array ( [0] => 00000 [1] => [2] => ), ciekawe jest to, że tylko kiedy baza danych już istnieje ale wcześniej jest sprawdzane czy jest i jeśli jest odpala "DROP DATABASE ..."
za diabła nie mogę wyśledzić o co kaman.

w każdym razie wygląda, że po załadowaniu bazy danych przerywa wykonywaniue skryptu ...
Jakieś pomysły ?
Jak byście to rozwiązali ?