Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przywracanie bazy danych mysql powoduje błędy

Cóż, po pierwsze, ta część kodu nie pomija komentarze, dosłownie dodaje je do twojego $templine :

    if(substr($line, 0, 2) == '--' || $line == '') //Skip all comments
        $templine.=$line;

Po drugie, tutaj próbujesz wykonać zapytanie za pomocą $templine przypisane powyżej (jeśli kiedykolwiek zostało przypisane lub w inny sposób '' ), gdzie faktycznie chcesz wykonać zapytanie za pomocą $line :

    if(substr(trim($line), -1, 1) == ';'){
        mysql_query($templine) or print('Error: '.mysql_error().'<br>');

Więc w zasadzie to powinno działać nieco lepiej:

foreach($lines as $line){
    if(substr($line, 0, 2) == '--' || $line == '') //Skip all comments
        continue;
    if(substr(trim($line), -1, 1) == ';'){
        mysql_query(trim($line)) or print('Error: '.mysql_error().'in ' . $line . '<br>');
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli czy umrzeć, czy to musi umrzeć?

  2. PHP 7 nie może znaleźć MySQLi

  3. Konwertuj ciąg na obiekt Datetime w SQL

  4. Ostatni indeks danego podciągu w MySQL

  5. Przechowywany wyzwalacz mysql jest już używany przez instrukcję, która wywołała przechowywany wyzwalacz