Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Qual seria o comando ""QUERY"" para executar vários comandos de uma só vez,,
Pra ficar tipo o campo de consulta SQL do phpmyadmin,,
A solução que procuro é apenas inserir o CREATE TABLE e o INSERT INTO de uma só vez num campo textarea..
Consegui fazer o sistema de backup que gera o arquivo .sql e agora na hora de restaurar eu leio o arquivo de texto em um campo textarea e faço um post para uma query,, mas não executa porq tem mais de um comando na query.. entendeu ?
Talvez vcs não entenderam então vou mostrar qual é o problema..
criar arquivo
test.sql
#
CREATE TABLE IF NOT EXISTS `clientes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(150) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ;
#
INSERT INTO clientes VALUES('1', 'Paulo');
Para ler o arquivo e enviar para a consulta query..
Cria o arquivo ler.php
<?php
$link = mysql_connect('localhost', 'root', '');
$db_list = mysql_list_dbs($link);
while ($row = mysql_fetch_object($db_list)) {
echo $row->Database . ",,,,\n";
}
?>
<?php
$banco = "" ;
if (count($_POST)){
$arquivo = $_FILES['arquivoTXT'];
$ponteiro = fopen ($arquivo['tmp_name'], 'r');
while (!feof ($ponteiro)) {
$linha = fgets($ponteiro, 4096);
$banco .= $linha;
}
fclose ($ponteiro);
}
?>
<form action="" method="post" enctype="multipart/form-data" name="cadastro" >
<input type="file" name="arquivoTXT" value="Selecionar" size="87" />
<br />
<input type="submit" name="cadastrar" value="Ler Arquivo" />
</form>
<form action="restaurar.php" method="get" name="enviar" target="_blank">
<textarea name="banco" cols="100" rows="25" id="banco"><?php echo $banco; ?></textarea><br />
<input name="Criar BD" type="submit" value="cRIAR bD" id="Criar BD" /></form>
Agora a pagina q restaura as tabelas
Cria restaurar.php
<?php
$banco = $_GET['banco'];
// CONEXÃO MySQL
$con = mysql_connect("localhost","root","");
// CRIAR TABELA
if (mysql_select_db("test", $con))
{
echo "Conexão BD ok <br>";
}
else
{
echo "erro: " . mysql_error();
} ;
$sql = $banco;
if ($sql){
echo "Envio OK <br>";
}
else
{
echo "ERRO" . mysql_error();
}
if (mysql_query($sql,$con))
{
echo "RESTAURAÇÃO OK";
}
else {
echo "<br />erro: " .mysql_error();
}
if (mysql_close($con))
{
}
else {
echo "ERRO" .mysql_error();
}
?>
...
O problema é que não executa, porque no test.sql tem dois comandos o CREATE e o INSERT.
Quem consegue resolver aí, tenho certeza que esse post vai ajudar muita gente principalmente a primeira parte q lê arquivos..
Desde Já agradeço a Todos..
Carregando comentários...