Pergunta

Preciso fazer um dump de uma tabela em um servidor remoto, mas não consigo acessar o servidor diretamente.O único acesso que tenho é através de scripts PHP.

Existe alguma maneira pela qual o MySQL retornará um

INSERT INTO `table_name` (`field1`, `field2`) VALUES ('a', 'b'), ('c', 'd')

declaração, como o que mysqldump retornará?

Não tenho acesso ao phpMyAdmin e de preferência não quero usar exec, system ou passthru.

Ver essa questão para outro método de exportação

Foi útil?

Solução

1) você pode executar o mysqldump a partir de exec ou passthru
2) dê uma olhada nisso: http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php

Outras dicas

Se você puder usar scripts php no servidor, eu recomendaria phpmyadmin.Então você pode fazer isso na interface da web.

Você deveria conferir PHPMyAdmin, é uma ferramenta de administração MySQL baseada em php.Ele suporta backups e recuperação do banco de dados, bem como uma 'GUI' para o servidor de banco de dados.Funciona muito bem.

Eu tenho certeza phpMyAdmin vai faça isso por você.

Esse

select 'insert into table table_name (field1, field2) values'
       || table_name.field1 || ', ' || table_field2 || ');'
from   table_name

deve começar.Substitua || com o operador de concatenação de string para o seu sabor de banco de dados.Se field1 ou field2 forem strings, você terá que inventar algum truque para citar/escapar.

Aqui está uma abordagem que gera muitas instruções de consulta separadas.Você também pode usar implode para combinar as strings com mais eficiência, mas isso é mais fácil de ler para começar e, a partir disso, você pode criar um milhão de outras abordagens.

$results = mysql_query("SELECT * FROM `table_name`");
while($row = mysql_fetch_assoc($results)) {

    $query = "INSERT INTO `table_name` ";
    $fields = '(';
    $values = '('; 

    foreach($row as $field=>$value) {
        $fields .= "'".$field."',";
        $values .= "'".mysql_escape_string($value)."',";
    }

    //drop the last comma off
    $fields = substr($fields,0,-1);
    $values = substr($values,0,-1);

    $query .= $fields . " VALUES " . $values;

    //your final result
    echo $query;
}

Veja se isso ajuda você a começar

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top