Domanda

Ho bisogno di fare un dump di una tabella su un server remoto, ma non posso accedere al server direttamente.L'unico accesso che ho è attraverso script PHP.

C'è qualche modo in cui MySQL restituisce un

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

istruzione, come quello che mysqldump ritornerà?

Non ho accesso a phpMyAdmin, e mi preferibilmente non si desidera utilizzare exec, system o passthru.

Vedere questa domanda per un altro metodo di esportazione

È stato utile?

Soluzione

1) si può eseguire mysqldump da exec o passthru
2) dare un'occhiata a questo: http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php

Altri suggerimenti

Se è possibile utilizzare php-script sul server mi sento di raccomandare phpmyadmin.Allora si può fare da interfaccia web.

Si dovrebbe verificare PHPMyAdmin, è un basato su php, MySQL strumento di amministrazione.Supporta il backup e il ripristino di base di dati così come un 'GUI' per il server di database.Funziona molto bene.

Sono abbastanza sicuro phpMyAdmin sarà fare questo per voi.

Questo

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

si dovrebbe ottenere iniziato.Sostituire || con l'operatore di concatenazione di stringhe per il tuo db sapore.Se campo1 o campo2 sono stringhe si dovrà venire con qualche trucco per citazione/fuga.

Qui è un approccio generando un sacco di query separato consolidato.È inoltre possibile utilizzare implodere in modo più efficiente combinare le corde, ma questo è più facile da leggere per antipasti e derivati da questo si può venire con un milione di altri approcci.

$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;
}

Vedere se si è iniziato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top