satu hal yang paling menyusahkan dalam backup data adalah.. backup data/ekspor yang ditawarkan dari phpmyadmin menyulitkanku. Dimana setelah berhasil di eksport, berikutnya pas di impor error.. apalagi kl udah main database dengan ukuran 12mb..
akhirnya gw memutuskan bikin skrip sendiri untuk convert dan ujung2nya pusing. Walo akhirnya sekarang bisa. Jadi rada-rada ingin share aja
konsep dari program ini adalah Backup data ke sql seperti halnya phpmyadmin. Tentu kita berfikir, kenapa cape2 bikin skrip sendiri yang mirip phpmyadmin. ada 3 alasan:
- Ambisi pribadi. jangan komen.. semua juga begitu
- masalah import. Saat import lebih dari 16mb (32 mb malah), phpmyadminnya ngambek (kayak anak kecil aja) dan saat dibuka.. tambah pusing karena isinya udah banyak dan waktu untuk edit2 udah bisa dibilang Ngak ada lagi
- waktu.. seperti yang tertulis di atas.. bayangkan server anda down ato kena virus tp untuk mengembalikannya cuma dikasi waktu 2 hari.
kejadian ini pernah terjadi pada forum yg saya ikuti.. bahkan sampe 1 minggu.. Parah khan
Konsep dari program ini sebagai berikut
- buka database sesuai permintaan. Tentunya mengurangi beban server mysql jadi kita bisa menentukan database mana aja yang di backup
- melihat isi table dari database bersangkutan. Pada awalnya gw gk sadar kl ada salah ketik nama database, jadi kemudian sy tambahin.. kl ngak ada nanti ada peringatan
- select semua data lalu masukkan ke variabel string
- setiap input/insert diberi komentar Break.. nantinya break ini akan
- setelah semua di dapat langsung taro di file yang tertulis
Skrip dapat dilihat pada halaman selanjutnya
thx forum indowebster untuk pewarnaannya
//koneksi
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
} //=======other variable=========
$filename='backup.sql.txt';
$aDB=array('test','cdcol');
foreach( $aDB as $sDB)
{
$resDB=@mysql_list_tables ($sDB);
if($resDB)
{
while($row0=mysql_fetch_array($resDB))
{
//print_r($row);echo "";
//$str.='-- table '.$row[0];
$str.="\n";
$str.=sqlTable($sDB,$row0[0],$link);
}//while($row=mysql_fetch_array($resDB))
}else{ //if($resDB)
$str.="\nNO Database with that name";
} //else if($resDB)
}//foreach($aDB as $sDB)
function sqlTable($db, $table, $link)
{
$sql="select * from $db.$table";
$res=mysql_db_query($db,$sql, $link)or die(mysql_error());
while($row=mysql_fetch_array($res,MYSQL_NUM))
{
$s.="INSERT DELAYED INTO `$db.".$table."` VALUES('$row[0]'";
for($i=1;$i<sizeof($row);$i++)
{
$s.=", '".addslashes($row[$i])."'";
}//for($i=1;$i
$s.=");
\n-- [break here]
\n";
} //while($row=mysql_fetch_array($res,MYSQL_NUM))
return $s;
//INSERT DELAYED INTO `jenjang` (`jid`, `label`) VALUES(7, 'SP-1');
} //function sqlTable($table, $link)
print ''.substr($str,0,1000).'...';
if (! $handle = fopen($filename, 'w+')) {
echo "Cannot open file ($filename)";
exit;
} //if (!$handle
if (fwrite($handle, $str) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}//if (fwrite($han
fclose($handle);
untuk menggunakan ada 3 variabel yang harus di ubah yaitu
$link = Koneksinya
$aDb = databasenya
$filename = targetnya
0 komentar:
Posting Komentar