<?php
// Acces mysql server
$server="1****";
$user="****";
$pass="******";
$db="******";
mysql_connect($server,$user,$pass) or die('erreur de connexion0');
mysql_select_db($db) or die ('impossible de se connecter a la base0');
// chargement FICHIER CONFIG
$sql0="SELECT * FROM `config` LIMIT 1";
$retour0 = mysql_query($sql0) or die('ERREUR SQL ! '.$sql0);
$field = mysql_num_fields($retour0);
$donnees0 = mysql_fetch_array($retour0);
for ( $i = 0; $i < $field; $i++ )
{
$_SESSION[mysql_field_name($retour0, $i)] = $donnees0[$i];
}
print_r($_SESSION);
//Connexion au FTP planevo FTP////////////////////////
$conn_id = ftp_connect($_SESSION["adresse_ftp"]);
$login_result = ftp_login($conn_id, $_SESSION["login_ftp"],$_SESSION["mdp_ftp"]);
//VERIFICATION DE LA CONNEXION//////////////////////
if ((!$conn_id) || (!$login_result)) {
echo "<br/>La connexion FTP a échoué !<br>";
echo "<br/>Tentative de connexion au serveur ".$_SESSION["adresse_ftp"]." pour l'utilisateur ".$_SESSION["login_ftp"]."";
exit;
} else {
echo "<br/>Connexion au serveur ".$_SESSION["adresse_ftp"].", pour l'utilisateur ".$_SESSION["login_ftp"]." est ok";
}
//CHARGEMENT D'UN FICHIER stockvo + verification
$donwload = ftp_get($conn_id, $_SESSION["dossier_import"].$_SESSION["fichier_vo"], $_SESSION["dossier_ftp"].$_SESSION["fichier_vo"], FTP_BINARY);
if (!$donwload) {
echo "<br/>Le chargement FTP a échoué!";
} else {
echo "<br/>Chargement de ".$_SESSION["fichier_vo"]." vers ".$_SESSION["adresse_ftp"]." en tant que ".$_SESSION["dossier_import"]." ";
}
//CHARGEMENT D'UN FICHIER photovo + verification
$donwload = ftp_get($conn_id, $_SESSION["dossier_import"].$_SESSION["fichier_photo_zip"], $_SESSION["dossier_ftp"].$_SESSION["fichier_photo_zip"], FTP_BINARY);
if (!$donwload) {
echo "<br/>Le chargement FTP a échoué!";
} else {
echo "<br/>Chargement de ".$_SESSION["fichier_photo_zip"]." vers ".$_SESSION["adresse_ftp"]." en tant que ".$_SESSION["dossier_import"] ."";
}
/////// //Decompression ZIP
$zip = new ZipArchive;
if ($zip->open($_SESSION["dossier_import"].$_SESSION["fichier_photo_zip"]) === TRUE) {
$zip->extractTo($_SESSION["dossier_import"]);
$zip->close();
echo '<br/> Decompression ok';
} else {
echo '<br/> Decompression failed';
}
//Fonction PHP
function lire_csv($nom_fichier, $separateur =";"){
$row = 0;
$donnee = array();
$f = fopen ($nom_fichier,"r");
//$f = str_replace ( '-', '_',$f) ;
$taille = filesize($nom_fichier)+1;
while ($donnee = fgetcsv($f, $taille, $separateur)) {
$result[$row] =str_replace ( '\'', '_',$donnee);
$row++;
}
fclose ($f);
return $result;
}
function requete_insert($donnees_csv, $table){
$insert = array();
$i = 0;
while (list($key, $val) = @each($donnees_csv)){
/*On ajoute une valeur vide ' ' en début pour le champs d'auto-incrémentation s'il existe, sinon enlever cette valeur*/
//VALUES ' . implode(',', $values);
if ($i>0){
$insert[$i] = "INSERT into `".$table."` VALUES ('";
$insert[$i] .= implode("','", $val);
$insert[$i] .= "')";
}$i++;
}
return $insert;
}
//////////////////
//vider la table SQL table 1 liste des VO
$query0 = "TRUNCATE TABLE `".$_SESSION['table_vo']."`";
$result = mysql_query($query0) or die('Erreur SQL !'. $query0.'<br />'.mysql_error());
/////////
//////////////////
//vider la table SQL table 2 liste des photos
$query0 = "TRUNCATE TABLE `".$_SESSION['table_photo']."`";
$result = mysql_query($query0) or die('Erreur SQL !'. $query0.'<br />'.mysql_error());
/////////////////////////////////////////////
/////////////// IMPORT DES VO //////////////
////////////// integration fichier en la base MYSQL
$donnees = lire_csv($_SESSION["dossier_import"].$_SESSION["fichier_vo"]);
$requetes= requete_insert($donnees, $_SESSION['table_vo']);
foreach($requetes as $requete)
{
// echo $requete;
$result = mysql_query($requete) or die('Erreur SQL !==>'. $requete.'<br />'.mysql_error());
}
///////////////// integration fichier photo
$donnees = lire_csv($_SESSION["dossier_import"].$_SESSION["fichier_photo"]," ");
$requetes= requete_insert($donnees, $_SESSION['table_photo']);
foreach($requetes as $requete)
{
// echo $requete;
$result = mysql_query($requete) or die('Erreur SQL !==>'. $requete.'<br />'.mysql_error());
}
ftp_close($conn_id);
// error_reporting(E_ALL); // Activer le rapport d'erreurs PHP
$db_charset = "utf8"; /* mettre utf8 ou latin1 */
// system($command);
ini_set(display_errors, 1);
error_reporting(E_ALL);
$commande = "mysqldump --host=$server --user=$user --password=$pass -C -Q -e --default-character-set=$db_charset planetvo > planetvo.sql ";
echo $commande;
system($commande);
?>
Je n'arrive pas en php à faire un DUMP, alors que si j’exécute la ligne directement dans le serveur (à travers putty) le dump se fait correctement.
Systèmes qui demandent des compétences d'administration. Dans ce cas là, seule une pseudo-réplication est nécessaire, je ne pense pas que guigui69 souhaite se farcir l'installation d'une réplication master-slave.Les SGBD ont des systèmes de master/slave qui font ça automatiquement, pas besoin de cron ou de coder normalement, juste un peu de doc devrait faire l'affaire.
Code : Tout sélectionner
#!/bin/bash
datafile=$(mktemp --tmpdir=/tmp/ dataXXXXXX.sql)
source_host="localhost"
source_user="utilisateur" # Remplacer par le nom d'utilisateur
source_pass="mot de passe" # Remplacer par le mot de passe
source_base="base de données" # Remplacer par le nom de la base de données
destination_host="192.168.1.5" # Remplacer par l'IP de la destination (PC Windows)
destination_user="utilisateur" # Remplacer par le nom d'utilisateur
destination_pass="mot de passe" # Remplacer par le mot de passe
destination_base="base de données" # Remplacer par le nom de la base de données
mysqldump --host=${source_host} --user=${source_user} --password=${source_pass} ${source_base} >${datafile}
mysql --host=${destination_host} --user=${destination_user} --password=${destination_pass} ${destination_base} <${datafile}
J'ai essayé la commande system/exec shell_exec"C:\Program Files\UwAmp\bin\database\mysql-5.5.9\bin\mysql.exe" --host=127.0.0.1 --user=root --password=++++++++planetvo < "C:\Program Files\UwAmp\www\ecran\planetvo.sql"
O o, c'est à la portée de n'importe qui, comme la plupart des tâches d'administration système d'ailleurs.Systèmes qui demandent des compétences d'administration. Dans ce cas là, seule une pseudo-réplication est nécessaire, je ne pense pas que guigui69 souhaite se farcir l'installation d'une réplication master-slave.Les SGBD ont des systèmes de master/slave qui font ça automatiquement, pas besoin de cron ou de coder normalement, juste un peu de doc devrait faire l'affaire.