Bonsoir,
Voilà j'ai un gros soucis.
Pour le BTS j'ai cinq projet à présenter et parmis ceux ci un sera choisi le jour de mon épreuvre pratique.
Un de mes projet me pose un gros soucis.
En fait je voulais faire de l'archivage en ligne avec une base SQL Server, donc en gros une sauvegarde, une restauration et une suppression de données.
La sauvegarde marche nikel par contre la restauration impossible. J'ai testé ma requete direct sous SQL Server elle fonctionne nikel, mais elle ne veut pas s'éxécuter quand je passe par PHP.
Voilà tout le code de ma page d'éxécution...
echo 'Debut';
$query = "SELECT valeurConfig FROM configuration";
$query.= " WHERE libConfig = 'emplacementBackup'";
$result = mssql_query($query);
$row = mssql_fetch_array($result);
$nomBackup = $_SESSION['base'].date(Y).date(m).date(d).date(H).date(i).date(s);
$cheminBackup = $row[0].$nomBackup.'.bak';
if($_POST['typeArchivage'] == 'complet')
{
echo 'Creation du backup<br>';
$query = "BACKUP DATABASE ".$_SESSION['base'];
$query.= " TO DISK = '".$cheminBackup."'";
$query.= " WITH FORMAT";
$result = mssql_query($query);
echo 'Fin de création du backup<br>';
$ligne = 0;
$query = "RESTORE FILELISTONLY";
$query.= " FROM DISK = '".$cheminBackup."'";
$result = mssql_query($query);
while($row = mssql_fetch_array($result))
{
if($ligne == 0)
{
$nomLogiqueD = $row[0];
$cheminFichierMDF = dirname($row[1]).'\\'.$nomBackup.'.mdf';
$ligne = $ligne+1;
}
else
{
$nomLogiqueL = $row[0];
$cheminFichierLDF = dirname($row[1]).'\\'.$nomBackup.'.ldf';
}
}
echo $nomLogiqueD.'<br>'.$cheminFichierMDF.'<br>'.$nomLogiqueL.'<br>'.$cheminFichierLDF.'<br>';
echo 'Restauration du backup<br>';
$query = "RESTORE DATABASE ".$nomBackup;
$query.= " FROM DISK = '".$cheminBackup."'";
$query.= " WITH FILE = 1,";
$query.= " MOVE '".$nomLogiqueD."' TO '".$cheminFichierMDF."',";
$query.= " MOVE '".$nomLogiqueL."' TO '".$cheminFichierLDF."',";
$query.= " NOUNLOAD,";
$query.= " STATS = 10";
$result = mssql_query($query);
echo 'Fin de restauration du backup';
}
Voilà, et c'est donc la requete en rouge qui ne veut pas s'éxécuter sauf sous SQL Server.
Donc si quelqu'un trouve une solution qu'il me la fasse parvenir car je cherche depuis un moment, mon BTS est lundi ou mardi prochain et je commence déjà à plancher sur un projet qui pourrait remplacer celui la.
Merci d'avance.