sql >> Base de Datos >  >> RDS >> Mysql

La restauración de la base de datos mysql da errores

Bueno, por un lado, esta parte del código no salta comentarios, literalmente los agrega a su $templine :

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

En segundo lugar, aquí intenta ejecutar la consulta con $templine asignado arriba (si alguna vez fue asignado, o de lo contrario '' ), donde realmente desea ejecutar la consulta con $line :

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

Entonces, básicamente esto debería funcionar un poco mejor:

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