PDO'nun kısaca anlatımını daha önceden vermiştim. Şimdi ise MySQL veritabanımızı php ile nasıl yedek alırız, onu göstereceğim.
- Öncelikle DBBackup.class dosyasını indirin.
- rar içindeki dosyayı çıkartın.
- Yeni bir dosya oluşturup içine şu kodları yazın.
<?php include 'DBBackup.class.php'; $db = new DBBackup(array( 'driver' => 'mysql', 'host' => 'localhost', 'user' => 'root', 'password' => '', 'database' => 'teste_backup' )); $backup = $db->backup(); if(!$backup['error']){ // Eğer bir dosyaya saklansın istiyorsanız bunu da kullanabilirsiniz. // $fp = fopen('file.sql', 'a+');fwrite($fp, $backup['msg']);fclose($fp); echo nl2br($backup['msg']); } else { echo 'An error has ocurred.'; } ?>
host, user, password, database bilgilerini kendinize göre düzenleyin. Bu kodların bulunduğu dosyayı çalıştırdığınızda SQL yedek karşınıza çıkacak.
Bundan sonrası size kalmış. İsterseniz echo komutuyla ekrana yazdırmak yerine, bir dosyaya saklayabilir veya mail fonksiyonu ile mailinize yedeği gönderebilirsiniz. Cron Job uygulayarak da her gün düzenli olarak yedek de alabilirsiniz.
Geliştirmek sizin elinizde
Güncelleme (03.02.2014)
.class dosyasında önemli bir hata buldum.
DBBackup.class.php dosyasını açın. 148. satırı
$this->handler = new PDO($this->dsn.';charset=UTF8', $this->user, $this->password);
bu şekilde (veritabanınızın charset değeri UTF8 değilse ona göre kendiniz düzenleyin) ve 214. satırı
$value = addslashes($value);
bu şekilde değiştirin.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--CREATING TABLE bilgiler
CREATE TABLE `bilgiler` (
`Id` int(11) NOT NULL AUTO' at line 1
sebebi nedir nasıl düzeltirim bilgi verir misiniz ?