lostyazilim
tr.link

PHP Backup Birden Fazla DB

15 Mesajlar 1.967 Okunma
acebozum
tr.link

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

Arestr adlı üyeden alıntı

ismail03 bağlantı bilgileri doğrumu kontrol ettiniz mi ?


evet. ama ajaxta indirme işlemini yaptıramıyorum
 

 

wmaraci
reklam

mrhydgn mrhydgn Webmaster Kullanıcı
  • Üyelik 19.08.2015
  • Yaş/Cinsiyet 31 / E
  • Meslek Webmaster
  • Konum Sakarya
  • Ad Soyad E** A**
  • Mesajlar 54
  • Beğeniler 24 / 6
  • Ticaret 0, (%0)
Arestr 500 döndürüyor hocam, sanırım her db için user ve pass farklı ondan. Alternatif olarak ilk halindeki şekliye her db için array oluşturup, arraylari döngüye sokarak indirme şansımız var mı ?
 

 

Arestr Arestr WM Aracı Kullanıcı
  • Üyelik 10.08.2014
  • Yaş/Cinsiyet 28 / E
  • Meslek Web Devoloper
  • Konum Kayseri
  • Ad Soyad N** C**
  • Mesajlar 408
  • Beğeniler 403 / 143
  • Ticaret 0, (%0)
ismail03 dosya indirme işlemi olduğundan hata veriyordur , ajax yerine $(window).attr() deneyin
 

 

FULL STACK WEB DEVELOPER

Arestr Arestr WM Aracı Kullanıcı
  • Üyelik 10.08.2014
  • Yaş/Cinsiyet 28 / E
  • Meslek Web Devoloper
  • Konum Kayseri
  • Ad Soyad N** C**
  • Mesajlar 408
  • Beğeniler 403 / 143
  • Ticaret 0, (%0)
mrhydgn bi bakayım hocam olur muhtemelen
 

 

FULL STACK WEB DEVELOPER
wmaraci
wmaraci

Arestr Arestr WM Aracı Kullanıcı
  • Üyelik 10.08.2014
  • Yaş/Cinsiyet 28 / E
  • Meslek Web Devoloper
  • Konum Kayseri
  • Ad Soyad N** C**
  • Mesajlar 408
  • Beğeniler 403 / 143
  • Ticaret 0, (%0)
index.php


header('Content-Type: text/html; charset=utf-8');
include 'Yedekle.class.php';
date_default_timezone_set('Europe/Istanbul');
$bugun=date("d-m-H-i");

$bilgiler = array(
array(
'src' => 'mysql',
'host' => 'localhost',
'kadi' => 'root',
'parola' => '',
'veritabani' => 'gsh_db'
),
array(
'src' => 'mysql',
'host' => 'localhost',
'kadi' => 'root',
'parola' => '',
'veritabani' => 'gsh_db2'
),
array(
'src' => 'mysql',
'host' => 'localhost',
'kadi' => 'root',
'parola' => '',
'veritabani' => 'test'
)

);

$olustur = new Yedekle($bilgiler);
$yedekle = $olustur->yedek();

if(!$yedekle['hata']){

header('Content-type: text/plain');
header('Content-disposition: attachment; filename=db'.$bugun.'.sql');
echo $yedekle['mesaj'];

} else {
echo 'İşlem başarısız oldu!';
}


Yedekle.class.php


class Yedekle {
/**
* Bağlantı kurulacak alanın aktarıldığı değişken
* @var
*/
private $host;
/**
* Bağlantı aşamasında kullanacağımız değişken
* @var
*/
private $src;
/**
* Bağlantı aşamasında kullanılan kullanıcı adı
* @var
*/
private $kadi;
/**
* Bağlantı aşamasında kullanacağımız parola
* @var
*/
private $parola;
/**
* Bağlanacağımız veritabanının adı
* @var
*/
private $vt_adi;
/**
* PDO kullanarak veritabanına bağlanacağımız değişken
* @var
*/
private $bilgiler;
/**
* Veritabanındaki tabloların dizi olarak tutulacağı değişken
* @var
*/
private $tablolar = array();
/**
* Veritabanına bağlıyken kullanacağımız nesne
* @var
*/
private $islem;
/**
* Alınan hataların dizi olarak aktarıldığı değişken
* @var
*/
private $hata = array();
/**
* Başarılı olduğumuzda kullanacağımız sonuç dizesi
* @var
*/
private $son;




/**
* Veritabanı bağlantısı @uses private
*/
private function baglan(){
try {
$this->islem = new PDO($this->bilgiler.';charset=utf8;', $this->kadi, $this->parola);
$this->islem->query('SET CHARACTER SET UTF8');
} catch (PDOException $e) {
$this->islem = null;
$this->hata[] = $e->getMessage();
return false;
}
}

/**
* Tabloları al @uses private
*/
private function tablo_al(){
try {
$goster = $this->islem->query('SHOW TABLES');
$bol = $goster->fetchAll();
$indis = 0;
foreach($bol as $tablo){
$this->tablolar[$indis]['ad'] = $tablo[0];
$this->tablolar[$indis]['olustur'] = $this->sutun_al($tablo[0]);
$this->tablolar[$indis]['veri'] = $this->veri_al($tablo[0]);
$indis++;
}
unset($goster);
unset($bol);
unset($indis);

return true;
} catch (PDOException $e) {
$this->islem = null;
$this->hata[] = $e->getMessage();
return false;
}
}

/**
*
* Sütunları al @uses private
*/
private function sutun_al($tablo_adi){
try {
$goster = $this->islem->query('SHOW CREATE TABLE '.$tablo_adi);
$bol = $goster->fetchAll();
$bol[0][1] = preg_replace("/AUTO_INCREMENT=[\w]*./", '', $bol[0][1]);
return $bol[0][1];
} catch (PDOException $e){
$this->islem = null;
$this->hata[] = $e->getMessage();
return false;
}
}

/**
*
* Tablolardan kayıtlı verileri al @uses private
*/
private function veri_al($tablo_adi){
try {
$goster = $this->islem->query('SELECT * FROM '.$tablo_adi);
$bol = $goster->fetchAll(PDO::FETCH_NUM);
$veri = '';
foreach ($bol as $parcalar){
foreach($parcalar as &$deger){
$deger = addslashes($deger);
}
$veri .= 'INSERT INTO '. $tablo_adi .' VALUES (\'' . implode('\',\'', $parcalar) . '\');'."\n";
}
return $veri;
} catch (PDOException $h){
$this->islem = null;
$this->hata[] = $h->getMessage();
return false;
}
}

public function Yedekle($parametre){

foreach($parametre as $db_info){

if( !$db_info['host'] ){
$this->hata[] = 'Host adresi geçersiz.';
}
if( !$db_info['kadi'] ){
$this->hata[] = 'Kullanıcı adı geçersiz.';
}
if( !isset($db_info['parola']) ){
$this->hata[] = 'Parola geçersiz.';
}
if( !$db_info['veritabani'] ){
$this->hata[] = 'Veritabanı adı geçersiz.';
}
if( !$db_info['src'] ){
$this->hata[] = 'Veritabanı türü geçersiz.';
}

if( count($this->hata) > 0 ){
return;
}

$this->host = $db_info['host'];
$this->tip = $db_info['src'];
$this->kadi = $db_info['kadi'];
$this->parola = $db_info['parola'];
$this->vt_adi = $db_info['veritabani'];

if($this->host=='localhost'){
$this->host = '127.0.0.1';
}
$this->bilgiler = $this->tip.':host='.$this->host.';dbname='.$this->vt_adi;

$this->baglan();
$this->tablo_al();
$this->olustur();

}

}

/**
* Yedek almak için çağırılan fonksiyon
* @example Yedekle::yedek();
*/
public function yedek(){
if(count($this->hata)>0){
return array('hata'=>true, 'mesaj'=>$this->hata);
}
return array('hata'=>false, 'mesaj'=>$this->son);
}

/**
* Yedek dizeleri oluşturur @uses private
*/
private function olustur(){
foreach ($this->tablolar as $t) {
$this->son .= $t['olustur'] . ";\n\n";
$this->son .= $t['veri']."\n\n\n";
}
}
}
 

 

FULL STACK WEB DEVELOPER
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al