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

Restaurar o banco de dados mysql dá erros


Bem, por um lado, esta parte do código não pula comentários, ele literalmente os adiciona ao seu $templine :
    if(substr($line, 0, 2) == '--' || $line == '') //Skip all comments
        $templine.=$line;

Em segundo lugar, aqui você tenta executar a consulta com $templine atribuído acima (se já foi atribuído, ou de outra forma '' ), onde você realmente deseja executar a consulta com $line :
    if(substr(trim($line), -1, 1) == ';'){
        mysql_query($templine) or print('Error: '.mysql_error().'<br>');

Então, basicamente, isso deve funcionar um pouco melhor:
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>');
    }
}