Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2011, 16h45   #1
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 178
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 178
Points : 25
Points : 25
Par défaut Copie de tables (local) vers une base web

Bonjour à tous,
Est-il possible de copier plusieurs située sur un serveur local vers une serveur web, sans utiliser de dump, mais en PHP, afin de réaliser une commande automatisée.
Merci.
dxerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 17h50   #2
Membre confirmé
 
Homme
Développeur informatique
Inscription : avril 2011
Messages : 196
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Italie

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : avril 2011
Messages : 196
Points : 298
Points : 298
Si tu arrive a te connecter a ta base de donnée de ton serveur web a distance (en dehors du meme nom de domaine) alors c'est faisable sinon une solution serais de passer par du transfert de fichier (FTP). Ca se fait en 2 temps, d'abords tu fait un backup de ta table en local ensuite tu fait un restore sur le serveur WEB.

Il y'a au moins 2 facon de faire :
- Faire une Query de backup de la BDD.
- Executer mysqldump en utilsant la fonction system().

- Faire une Query de backup de la BDD.

Un exemple de code en utilisant une query SELECT INTO OUTFILE pour créer la table backup :
Code :
1
2
3
4
5
6
<?php
$tableName  = 'matable';
$backupFile = 'matable.sql';
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query);
?>
Transfert du fichier sauvegardé vers le serveur WEB en FTP
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$file = 'matable.sql';
$remote_file ='matable.sql';
 
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Tranfert réussi fichier $file\n";
} else {
 echo "Probleme transfert fichier $file\n";
}
 
ftp_close($conn_id);
?>
Pour récupérer la table sur le serveur WEB tu aura besoin de faire une query LOAD DATA INFILE comme ceci :
Code :
1
2
3
4
5
6
<?php
$tableName  = 'matable';
$backupFile = 'matable.sql';
$query      = "LOAD DATA INFILE '$backupFile' INTO TABLE $tableName";
$result = mysql_query($query);
?>
- Executer mysqldump en utilsant la fonction system().

La fonction system() est utilisé pour exécuter un programme externe (si le serveur WEB le permet). On peut appeler mysqldump a partir du code PHP.
Pour sauvegarder toute la BDD
Code :
1
2
3
4
5
<?php
$backupFile = $nomBDD . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $nomBDD | gzip > $backupFile";
system($command);
?>
Ou bien quelques tables spécifiques:
Code :
1
2
3
4
5
6
 
<?php
$backupFile = $nomBDD . date("Y-m-d-H-i-s") . '.gz';
$command = "mysqldump -h $dbhost -u $dbuser -p $dbpass $nomBDD $table1,$table2,$table3 | gzip > $backupFile";
system($command);
?>
fab256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 23h28   #3
Membre à l'essai
 
Inscription : octobre 2003
Messages : 73
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 73
Points : 21
Points : 21
Pourquoi ne pas regarder du côté de la réplication de base myql entre deux serveurs ?
adr22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 00h24   #4
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 178
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 178
Points : 25
Points : 25
Un serveur est local tandis que le second est mutualisé, ce qui ne facilite pas les choses pour des raisons de droits
dxerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 02h26   #5
Nouveau Membre du Club
 
Inscription : septembre 2008
Messages : 178
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 178
Points : 25
Points : 25
Est-il possible avec PHP de faire quelque chose comme
Code :
CREATE TABLE base_1.table SELECT * FROM base_2.table
dxerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 08h09   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
Oui mais à condition que les deux bases soient sur le même serveur.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h36.


 
 
 
 
Partenaires

Hébergement Web