Bottoni 0 Denunciar post Postado Fevereiro 23, 2011 Boa noite a todos. Estou com dificuldades em restaurar um backup de um banco de dados meu pelo php. Minha situação é a seguinte. Tenho um arquivo "backup.sql" onde estão os códigos SQL para a criação das tabelas e as inserções. Se eu copio o conteúdo deste arquivo e colo, no phpmyadmin por exemplo, ele é executado e o backup restaurado corretamente. Porém, minha ideia era fazer esse backup automaticamente pelo sistema, apenas apertando um botão. Criei um código que pegava o conteúdo desse arquivo "backup.sql" e executava. Não acontecia nada. O banco continuava igual!!! Fazendo alguns testes descobri que o comando mysql_query($minhas_consultas); não executa mais de uma consulta por vez. Explicando melhor, se $minhas_consultas for "UPDATE t1 SET nome = 'teste'; UPDATE t2 SET nome = 'teste';"; os comandos não são executados. Mas se eu tiver $minhas_consultas1 = "UPDATE t1 SET nome = 'teste';"; e $minhas_consultas2 = "UPDATE t2 SET nome = 'teste';"; as duas são executadas. Sendo assim, mudei meu código que cria o backup do banco de dados de modo a inserir uma palavra de controle, para separar as consultas umas das outras. E mudei também o código que restaura o backup, deixando ele da seguinte maneira: // Pego o conteudo do arquivo "backup.sql" $consulta = file_get_contents($diretorioOrigem.$backup['Arquivo']); // Separo as consultas usando a palavra de controle $separador $consultas = explode($separador, $consulta); // Executo cada consulta separadamente for ($i = 0; $i < count($consultas); $i++) $conexao->consulta($consultas[$i]); Assim está funcionando muito bem. O backup é restaurado corretamente. Mas não estou satisfeito! :P Existe algum modo de executar várias consultas juntas no mysql pelo php? E alguém tem alguma crítica a respeito desse meu código atual? Já pode ajudar! Muito obrigado! Abraço, Marcelo F Bottoni Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Fevereiro 23, 2011 A forma procedural não vai funcionar mesmo, queries múltiplas não são suportadas, isso está documentado no manual do PHP. Pesquise sobre a mysqli e sobre PDO e, se possível, prefira a PDO. Compartilhar este post Link para o post Compartilhar em outros sites