Mysql
 sql >> Base de données >  >> RDS >> Mysql

La restauration de la base de données mysql donne des erreurs

Eh bien, pour commencer, cette partie du code ne saute pas commentaires, il les ajoute littéralement à votre $templine :

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

Deuxièmement, ici vous essayez d'exécuter la requête avec $templine attribué ci-dessus (s'il a déjà été attribué, ou sinon '' ), où vous voulez réellement exécuter la requête avec $line :

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

Donc, fondamentalement, cela devrait fonctionner un peu mieux :

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>');
    }
}